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]

Responder a