// Hiermit werden Bilder (keine Icons) in Images eingepasst, ohne verzerrt
// zu werden oder die Imagegröße zu ändern.

// Getestet mit D4 unter WinME

uses JPeg;

procedure GrafikInsImage(bild:TGraphic;image:TImage;Hintergrund:TColor);
var
hlp:TBitmap;
faktor:double;
begin
image.autosize:=false;
hlp:=TBitmap.create;
faktor:=bild.height / bild.width;
if faktor > image.height / image.width then begin
hlp.height := image.height;
hlp.width := trunc(hlp.height / faktor);
end else begin
hlp.width := image.width;
hlp.height := trunc(hlp.width * faktor);
end;
hlp.canvas.stretchdraw(rect(0,0,hlp.width,hlp.height),bild);
image.canvas.brush.color:=Hintergrund;
image.canvas.FillRect(image.canvas.cliprect);
image.canvas.draw((image.width-hlp.width) div 2,
(image.height-hlp.height) div 2,hlp);
hlp.free;
end;

// Beispielaufrufe
procedure TForm1.Button4Click(Sender: TObject);
var
bmp:TBitmap;
jpg:TJpegimage;
begin
bmp:=TBitmap.create;
jpg:=TJpegimage.create;
bmp.loadfromfile('d:\bilder\corel008.bmp');
jpg.loadfromfile('d:\bilder\vogel.jpg');
GrafikInsimage(bmp,image1,color);
GrafikInsimage(jpg,image2,0);
jpg.free;
bmp.free;
end;

 


 

Zugriffe seit 6.9.2001 auf Delphi-Ecke