Einzelnen Beitrag anzeigen

thestallion90

Registriert seit: 10. Aug 2008
22 Beiträge
 
Delphi XE Starter
 
#1

Bild aus Datei mit StretchBlt passend in TImage anzeigen

  Alt 20. Mär 2014, 13:32
Hey Leute,

leider hat Google und die Foren-Suche ausnahmsweise mal nichts brauchbares ergeben Ich verstehe einfach nicht, warum StretchBlt bei mir nicht die richtige Wirkung erziehlt (bzw überhaupt irgendeine Wirkung wäre schon gerne gesehen).

Was passieren soll habe ich im Anhang skizziert.

Folgender Code:

Delphi-Quellcode:
procedure SetPic(l_picname : String);
var l_Image : TImage;
    l_Src_Bitmap, l_Dest_Bitmap : TBitmap;
begin
  //initialisieren...
  l_Image := TImage.Create(Self);
  l_Src_Bitmap := TBitmap.Create;
  l_Dest_Bitmap := TBitmap.Create;
  try
  //Bild laden...
  l_Image.Picture.LoadFromFile(l_picname);

  //Bild auf Quellleinwand schreiben...
  l_Src_Bitmap.Assign(l_Image.Picture.Graphic);

  //An dieser Stelle lasse ich mir die Abmessungen des Bitmap ausgeben und kann somit mit
  //Sicherheit sagen, dass auf jeden Fall die Datei geladen und hinein geschrieben wird.
  //Außerdem habe ich ausprobiert das l_src_Bitmap am Ende dem Bild zuzuweisen, das funktioniert, nur natürlich ohne resize

  //Bild auf Zielleinwand schreiben...
  SetStretchBltMode(l_Src_Bitmap.Canvas.Handle,HALFTONE); //Ich bin mir nich sicher wo ich die BltMode umstellen muss
  SetStretchBltMode(l_Dest_Bitmap.Canvas.Handle,HALFTONE); //Ich bin mir nich sicher wo ich die BltMode umstellen muss
  StretchBlt(l_Dest_Bitmap.Canvas.Handle,
             0, 0, Image1.Width, Image1.Height,
             l_Src_Bitmap.Canvas.Handle,
             0, 0, l_Src_Bitmap.Width, l_Src_Bitmap.Height,
             SRCCOPY);

  //Fertige Bild von Zielleinwand auf TImage-Komponente anzeigen...
  Image1.Picture.Assign(l_Dest_Bitmap);
  finally
    l_Image.Free;
    l_Src_Bitmap.Free;
    l_Dest_Bitmap.Free;
  end;
end;
Das Image enthält vor Aufruf der Methode ein Bild, nach Aufruf ist es leer. Also scheint das Assign ein leeres Bitmap zuzuweisen. Aber warum schreibt StretchBlt nicht in das l_Dest_Bitmap?

Vielen Dank schon im Voraus!
Miniaturansicht angehängter Grafiken
resize-problem.png  
  Mit Zitat antworten Zitat