![]() |
Bild aus Datei mit StretchBlt passend in TImage anzeigen
Liste der Anhänge anzeigen (Anzahl: 1)
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:
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?
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; Vielen Dank schon im Voraus! |
AW: Bild aus Datei mit StretchBlt passend in TImage anzeigen
Hilft Dir
![]() |
AW: Bild aus Datei mit StretchBlt passend in TImage anzeigen
Hat l_Dest_Bitmap nach dem Create nicht Höhe und Breite gleich 0? Dann wird was draufgemalt (nicht viel, weil sich dabei die Größe nicht ändert), und am Ende wird dieses 0 mal 0 Pixel große Bild dem Image.Picture.Bitmap zugewiesen.
Fehlt vielleicht sowas wie beispielsweise
Delphi-Quellcode:
oder so?
l_Dest_Bitmap.width := Image1.width
Gruß Michael |
AW: Bild aus Datei mit StretchBlt passend in TImage anzeigen
Zitat:
Delphi-Quellcode:
procedure SetActorPic(l_picname: string);
var Quelle, Ziel : TGraphic; begin Quelle:=TGraphic.Create; Ziel:=TGraphic.Create; try Quelle.LoadFromFile(l_picname); StretchGraphic(Quelle,Ziel,Image1.Width, Image1.Height, True); Image1.Picture.Assign(Ziel); finally Quelle.Free; Ziel.Free; end; end; Zitat:
|
AW: Bild aus Datei mit StretchBlt passend in TImage anzeigen
![]() Zitat:
|
AW: Bild aus Datei mit StretchBlt passend in TImage anzeigen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:54 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz