Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi TImage - Bildgröße anpassen (https://www.delphipraxis.net/132022-timage-bildgroesse-anpassen.html)

dutyfree 4. Apr 2009 16:42


TImage - Bildgröße anpassen
 
Hallo, schon gegoogelt ohne Erfolg..
Ich hab ein Image passe es mit Align an die Form an und es werden Bilder geladen. Die bilder überschreiten dabei oft die Größe der Form und es wird eben nur ein Teil es Bildes angezeigt, einfach Frage jetzt von mir; Mit welchem Befehl passe ich die Bilder der Image bzw. Form bzw. Monitorgröße (falls ich die Form dem Monitor anpasse) an?
thx

alleinherrscher 4. Apr 2009 16:56

Re: TImage - Bildgröße anpassen
 
Delphi-Quellcode:
TImage.strech:=True
könnte dir helfen!

dutyfree 4. Apr 2009 17:01

Re: TImage - Bildgröße anpassen
 
*stretch ;)

Danke, läuft ganz gut, jetzt haben die Bilder leider nur dicke fette Pixel-Punkte, mit der Windows Diashow ist das nicht so, gibt es da auch eine Lösung für?

mfg

jaenicke 4. Apr 2009 17:31

Re: TImage - Bildgröße anpassen
 
Erstens wäre vielleicht auch noch Proportional interessant, dann würden die Bilder nicht verzerrt.

Und zu deinem Problem: Dafür benutzt Microsoft Antialiasing, das müsstest du auch machen. Dann ginge das aber nicht einfach mit Stretch, weil dabei die Pixel einfach nur auf mehr Pixel angezeigt werden, aber keine Übergänge geschaffen werden.

dutyfree 4. Apr 2009 17:37

Re: TImage - Bildgröße anpassen
 
okay.. danke für die antwort.. zum thema antialiasing habe ich das hier: klick gefunden.
Mit diesem Beispielaufruf:
Delphi-Quellcode:
Antialiasing(Bitmap, Rect(0, 0, Bitmap.Width, Bitmap.Height), 50);
Wie muss ich den Aufruf umschreiben damit ein Bild in Image1 "antialiast" wird?

_frank_ 5. Apr 2009 12:03

Re: TImage - Bildgröße anpassen
 
z.b. mit einem temporären bitmap:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var bmp{,bmp2}:TBitmap;
begin
  bmp:=TBitmap.create;
  bmp.width:=image1.width*2;
  bmp.height:=image1.height*2;
  stretchblt(bmp.canvas.handle,
    0,0,bmp.width,bmp.height,
    image1.picture.bitmap.canvas.handle,
    0,0,image1.picture.bitmap.width,image1.picture.bitmap.height,
    srccopy);
  antialiasing(bmp,bmp.Canvas.ClipRect,50);
  image1.Picture.Assign(bmp);
  bmp.free;
end;
das Stretch/Proportional-Property must natürlich deaktivieren und ggf. das ursprungsbitmap sichern, da das ja überschrieben wird.

Gruß Frank


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:26 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz