Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Große Grafiken sehr klein skalieren (https://www.delphipraxis.net/93528-grosse-grafiken-sehr-klein-skalieren.html)

hsg 7. Jun 2007 06:55


Große Grafiken sehr klein skalieren
 
Hallo,

ich habe in einer Applikation eine Anzeige von Fotos integriert. Diese Fotos liegen als JPEG vor und haben i.d.R. Größen von 1280x1023, 1518x1689 und 750x1000 Pixeln.

Die Anzeige in meinem Programm beträgt nur 99x119 Pixel.
Was für Tipp habt ihr für mich, die Bilder möglichst optimal zu skalieren?

Die Bilder werden mittels einem TImage dargestellt, Eigenschaft "stretch:=true;"

turboPASCAL 7. Jun 2007 07:24

Re: Große Grafiken sehr klein skalieren
 
Was für Tipps willst den du haben ? :stupid:

Setze die Eigenschaft Proportional des Images auf True damit das Seitenverhältnis erhalten bleibt.

Verwende die Units von Gr32 um eine Bessere Darstelung zu erhalten.

Verwende intern in deinen Programm Thumbnailbitmaps also eine Kleinausgabe deines Grossen Bildes
um Speicherplatz zu spaaren wenn du mehrere Images Anzeigen möchtest.

...mehr ?

hsg 7. Jun 2007 08:35

Re: Große Grafiken sehr klein skalieren
 
Liste der Anhänge anzeigen (Anzahl: 2)
Zitat:

Zitat von turboPASCAL
Was für Tipps willst den du haben ? :stupid:

Setze die Eigenschaft Proportional des Images auf True damit das Seitenverhältnis erhalten bleibt.

Verwende die Units von Gr32 um eine Bessere Darstelung zu erhalten.

Verwende intern in deinen Programm Thumbnailbitmaps also eine Kleinausgabe deines Grossen Bildes
um Speicherplatz zu spaaren wenn du mehrere Images Anzeigen möchtest.

...mehr ?

Proportional ist natürlich gesetzt.

Die GR32 verwende ich bereits, komme aber nicht so ganz richtig damit klar. Vielleicht ein Paar Tipps in der Richtung?

Ich hänge mal ein Beispiel an, damit man sieht wo mein eigentliches Problem ist.

Wenn mir nun einer sagen kann, wie ich das Ergebnis aus der Bildverarbeitung hin bekomme wäre ich dankbar!

SirThornberry 7. Jun 2007 08:39

Re: Große Grafiken sehr klein skalieren
 
ich würde die Bilder selbst verkleinern und das verkleinerte Bild im TImage (ohne Stretch) laden. Ansonsten muss das TImage bei jedem Paint das Bild neu verkleinern.
Verkleinern in guter Qualität geht unter anderem so:
Delphi-Quellcode:
SetStretchBltMode(DstCanvas.Handle, STRETCH_HALFTONE);
SetBrushOrgEx(DstCanvas.Handle, 0, 0, nil);
StretchBlt(...);

hsg 7. Jun 2007 10:03

Re: Große Grafiken sehr klein skalieren
 
SirThornberry: Danke, funktioniert nun wie es soll.

Wie würde man das denn (ohne StretchBlt) nur mit den nativen Methoden der GR32 hinbekommen?

DGL-luke 7. Jun 2007 10:26

Re: Große Grafiken sehr klein skalieren
 
Hallo,

bei den neueren GR32-Versionen geht das per Resampler. Du setzt den Resampler des TBitmap32, auf das gezeichnet werden soll. Mal so aus dem Stegreif:

Delphi-Quellcode:
var
  Res: TKernelResampler;
begin
  Res := TKernelResampler.Create;
  bmp32.Resampler := Res;

  Res.Kernel := TLanczosKernel.Create;

  bmp32.Draw(...);
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:31 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