![]() |
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;" |
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 ![]() Verwende intern in deinen Programm Thumbnailbitmaps also eine Kleinausgabe deines Grossen Bildes um Speicherplatz zu spaaren wenn du mehrere Images Anzeigen möchtest. ...mehr ? |
Re: Große Grafiken sehr klein skalieren
Liste der Anhänge anzeigen (Anzahl: 2)
Zitat:
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! |
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(...); |
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? |
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 08:03 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