AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Große Grafiken sehr klein skalieren
Thema durchsuchen
Ansicht
Themen-Optionen

Große Grafiken sehr klein skalieren

Ein Thema von hsg · begonnen am 7. Jun 2007 · letzter Beitrag vom 7. Jun 2007
Antwort Antwort
hsg

Registriert seit: 24. Apr 2006
Ort: Wustermark
354 Beiträge
 
Delphi 10.3 Rio
 
#1

Große Grafiken sehr klein skalieren

  Alt 7. Jun 2007, 07:55
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;"
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#2

Re: Große Grafiken sehr klein skalieren

  Alt 7. Jun 2007, 08:24
Was für Tipps willst den du haben ?

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 ?
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
hsg

Registriert seit: 24. Apr 2006
Ort: Wustermark
354 Beiträge
 
Delphi 10.3 Rio
 
#3

Re: Große Grafiken sehr klein skalieren

  Alt 7. Jun 2007, 09:35
Zitat von turboPASCAL:
Was für Tipps willst den du haben ?

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!
Miniaturansicht angehängter Grafiken
screenshot3_149.jpg   00252_159.jpg  
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Große Grafiken sehr klein skalieren

  Alt 7. Jun 2007, 09:39
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(...);
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
hsg

Registriert seit: 24. Apr 2006
Ort: Wustermark
354 Beiträge
 
Delphi 10.3 Rio
 
#5

Re: Große Grafiken sehr klein skalieren

  Alt 7. Jun 2007, 11:03
SirThornberry: Danke, funktioniert nun wie es soll.

Wie würde man das denn (ohne StretchBlt) nur mit den nativen Methoden der GR32 hinbekommen?
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Große Grafiken sehr klein skalieren

  Alt 7. Jun 2007, 11:26
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;
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Antwort Antwort


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 23:27 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