Einzelnen Beitrag anzeigen

CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#1

JPEG/GIF vergrößern oder verkleinern

  Alt 26. Mai 2006, 11:05
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
  Mit Zitat antworten Zitat