AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Bild aus Datei mit StretchBlt passend in TImage anzeigen

Bild aus Datei mit StretchBlt passend in TImage anzeigen

Ein Thema von thestallion90 · begonnen am 20. Mär 2014 · letzter Beitrag vom 20. Mär 2014
 
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!
Angehängte Grafiken
Dateityp: png Resize-Problem.png (6,3 KB, 11x aufgerufen)
  Mit Zitat antworten Zitat
 

 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:19 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