Hi,
ich habe mir
diesen Code aus der Code-Library genommen und versucht bei mir in ein Programm einzubauen. Hab es nur ein wenig verändert, so dass es jetzt so aussieht:
Delphi-Quellcode:
procedure ResizeImage(newWidth, newHeight: integer; Image: TImage; var DestBitmap: TBitmap);
begin
SetStretchBltMode(DestBitmap.Canvas.Handle, Halftone);
StretchBlt(DestBitmap.Canvas.Handle, 0, 0, newWidth, newHeight, Image.Canvas.Handle,
0, 0, Image.Width, Image.Height, SRCCOPY);
DestBitmap.Width := newWidth;
DestBitmap.Height := newHeight;
end;
Wenn ich Bitmaps in meinem TImage habe, ist das auch kein Problem und es funktioniert alles tadellos. Wenn ich aber nun JPEGs oder GIFs (entsprechende Units sind überall entsprechend eingebunden), bekomme ich folgende Fehlermeldung:
Code:
---------------------------
BitmapTester
---------------------------
Bild kann nur geändert werden, wenn es ein Bitmap enthält.
---------------------------
OK
---------------------------
In einem anderen Thread habe ich schon gelesen, dass es daran liegt, dass das Image keine
Canvas-Zeichenfläche mehr hat, wenn ich keine Bitmaps geladen habe. Aber wie kann ich dann ein korrektes
HDC an die
StretchBlt-Methode weitergeben?
Hat das jemand schon probiert oder auch so spontan einen Vorschlag?
Chris