AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Qualität tImage

Ein Thema von striderx · begonnen am 20. Dez 2014 · letzter Beitrag vom 22. Dez 2014
Antwort Antwort
Seite 2 von 2     12   
Perlsau
(Gast)

n/a Beiträge
 
#11

AW: Qualität tImage

  Alt 22. Dez 2014, 12:26
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:

ScaleImage(OriginalBitMap, ResultBitMap,2);
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.176 Beiträge
 
Delphi 10 Seattle Enterprise
 
#12

AW: Qualität tImage

  Alt 22. Dez 2014, 12:49
Oder auch hier nochmal:

Delphi-Quellcode:
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.
Du musst dir natürlich noch eine Kopie des Originalbildes vorhalten um es dann in makePretty(..) reinstecken zu können. Dann kannst du, wenn du es brauchst, einfach sagen image1.makePretty(originalImage) .
  Mit Zitat antworten Zitat
striderx

Registriert seit: 11. Feb 2007
Ort: Bergisch Gladbach
207 Beiträge
 
Delphi 10.4 Sydney
 
#13

AW: Qualität tImage

  Alt 22. Dez 2014, 18:20
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.
Angehängte Dateien
Dateityp: zip Bilder.zip (4,17 MB, 22x aufgerufen)
  Mit Zitat antworten Zitat
striderx

Registriert seit: 11. Feb 2007
Ort: Bergisch Gladbach
207 Beiträge
 
Delphi 10.4 Sydney
 
#14

AW: Qualität tImage

  Alt 22. Dez 2014, 18:26
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!

Geändert von striderx (22. Dez 2014 um 23:11 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 14:46 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