Encontrei uma rotina, não sei se vai te servir: If you know what sort of size you're using for drawing it, you can in many cases significantly speed up the loading if the displayed jpeg is much smaller than the original.
Check out TJPEGImage.Scale. Here's some sample code: procedure LoadScaledJpeg(Stream: TStream; MaxWidth, MaxHeight: integer; Dest: TBitmap); var jpg: TJPEGImage; aspect, maxaspect: single; width, height, scale: integer; begin jpg:= TJPEGImage.Create; try jpg.LoadFromStream(Stream); // find the width and height which fits inside // the maximum rectangle while preserving // the aspect ratio aspect:= jpg.Width / jpg.Height; maxaspect:= MaxWidth / MaxHeight; if (aspect > maxaspect) then begin width:= MaxWidth; height:= round(MaxWidth / aspect); end else begin width:= round(MaxHeight * aspect); height:= MaxHeight; end; // find the scale that causes the jpg to be as small // as possible while still larger than the destination // width and height. This ensures that when we // resample the image we dont scale up any // dimention, only down. scale:= floor(min(jpg.Width / width, jpg.Height / height)); case scale of 0..1: jpg.Scale:= jsFullSize; 2..3: jpg.Scale:= jsHalf; 4..7: jpg.Scale:= jsQuarter; else jpg.Scale:= jsEighth; end; // decode and assign Dest.Assign(jpg); finally jpg.Free; end; end; Em 22/04/2010 11:43, Alemão escreveu: > > Pessoal, alguém conhece algo a este respeito? Trabalha com > processamento de > imagem? > > Ainda não consegui resolver este problema até hoje. > > []s > Alemao > > Em 21 de fevereiro de 2010 15:47, Alemão <forumdel...@gmail.com > <mailto:forumdelphi%40gmail.com>> escreveu: > > > Encontrei a sigla... o tipo de bmp é DIB (Device Independent Bitmap). > > > > O Delphi suporta este tipo de bitmap? Isto resolveria o problema? > > > > []s > > Alemão. > > > > Em 21 de fevereiro de 2010 15:41, Alemão <forumdel...@gmail.com > <mailto:forumdelphi%40gmail.com>> escreveu: > > > > Pessoal, estou com um problema, > >> > >> recebo uma imagem em JPG e a converto para bitmap no delphi normalmente > >> usando o assign BMP.Assign(JPG). A partir deste bitmap, faço vários > >> tratamentos, baseado em suas cores, por exemplo: > >> > >> if bmp.canvas.pixels[i] = clblue then bmp.canvas.pixels[i] := clwhite. > >> > >> Tudo OK, fuciona perfeitamente na minha máquina, que possui > configuração > >> de cores True Color de 32 bits, mas quando executo em maquinas com > >> intensidade de cores diferentes: 16 ou 8 bits por exemplo, o > resultado sai > >> bastante diferente. > >> > >> Andei pesquisando na internet e vi que o bitmap tem uma relação de > >> dependência com a intensidade de cores do windows, porém vi que > existe um > >> tipo de bitmap que é independente dessa configuração do windows, > tem até uma > >> sigla pra esse tipo de imagem, só não me lembro agora qual é... > >> > >> Alguem tem uma idéia de como posso contornar este problema? > Trabalhar com > >> o bitmap independente das configurações do windows? > >> > >> Obrigado. > >> > > > > > > [As partes desta mensagem que não continham texto foram removidas] > > [As partes desta mensagem que não continham texto foram removidas]