AW: Qualität tImage
Die Syntax der Procedure steht doch in der Online-Hilfe, auf die Günther verlinkt hat. Der folgende Befehl vergrößert das OriginalBitMap um den Faktor 2 und liefert das Ergebnis in ResultBitMap zurück:
Delphi-Quellcode:
ScaleImage(OriginalBitMap, ResultBitMap,2);
|
AW: Qualität tImage
Oder auch hier nochmal:
Delphi-Quellcode:
Du musst dir natürlich noch eine Kopie des Originalbildes vorhalten um es dann in
unit Unit6;
interface uses Vcl.ExtCtrls, Vcl.Graphics; type TImageHelper = class helper for Vcl.ExtCtrls.TImage public procedure makePretty(const withOriginalImage: TGraphic); end; implementation uses Vcl.GraphUtil; { TImageHelper } procedure TImageHelper.makePretty(const withOriginalImage: TGraphic); var srcBitmap: TBitmap; // Enthölt das Originalbild dstBitmap: TBitmap; // Speziell für die aktuellen Abmessungen begin srcBitmap := TBitmap.Create(); try srcBitmap.Width := withOriginalImage.Width; srcBitmap.Height := withOriginalImage.Height; srcBitmap.Canvas.Draw(0, 0, withOriginalImage); dstBitmap := TBitmap.Create(); try dstBitmap.Width := self.Width; dstBitmap.Height := self.Height; // Skalierte Version in neues Bitmap zeichnen if self.Height < self.Width then Vcl.GraphUtil.ScaleImage( srcBitmap, dstBitmap, self.Height / srcBitmap.Height ) else Vcl.GraphUtil.ScaleImage( srcBitmap, dstBitmap, self.Width / srcBitmap.Width ) ; // imageComponent mit neuem Bild bestücken self.Picture.Bitmap := dstBitmap; finally dstBitmap.Free(); end; finally srcBitmap.Free(); end; end; end.
Delphi-Quellcode:
reinstecken zu können. Dann kannst du, wenn du es brauchst, einfach sagen
makePretty(..)
Delphi-Quellcode:
.
image1.makePretty(originalImage)
|
AW: Qualität tImage
Liste der Anhänge anzeigen (Anzahl: 1)
So, jetzt habe ich endlich ein Beispielbild bekommen.
Das Original ist das JPG-Bild, die Dartstellung im tImage das andere. Der Unterschied ist schon recht krass. |
AW: Qualität tImage
Hallo Günther, vielen Dank für das Code-Beispiel. Ich werde es sobald wie möglich ausprobieren.
/edit: So, ich habe es mittlerweile ausprobiert, und die Qualitätsverbesserung ist wirklich dramatisch (und das ohne Fremdkomponente). >>Warum man so etwas in der VCL immer noch von Hand machen (bzw. Fremdkomponenten installlieren) muss ... << Dem kann man nur zustimmen. Vielen Dank für die Hilfe! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:32 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