Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Die Abmessung (in cm) und Auflösung eines Bildes ermitteln? (https://www.delphipraxis.net/137991-die-abmessung-cm-und-aufloesung-eines-bildes-ermitteln.html)

jus 1. Aug 2009 17:21


Die Abmessung (in cm) und Auflösung eines Bildes ermitteln?
 
Hallo,

ich versuche ein Programm zu schreiben, das Bilddateien(derzeit JPG, TIF, BMP, PSD) gebündelt ausdrucken kann. Später möchte ich noch weitere Bildformate unterstützen.
Zum Reinladen des Bildes auf einen TImage verwende ich die Vampyre Imaging Library. Die funktioniert ziemlich einfach und problemlos. Das Problem ist, dass ich derzeit keine Möglichkeit habe, die Bildgröße, sprich Bildbreite und Bildhöhe, in Zentimeter abzufragen, so wie es ursprünglich für das Bild angedacht war.
Der aktuelle Stand meiner Internetsuche ist, dass man anscheinend sich jedesmal mit dem jeweiligen Dateiformat auseinandersetzen muß, damit man die Abmessungen des Bildes in Zentimeter bekommt. :(

Gibt es eine allgemeine Methode die Abmessung in Zentimeter von einem Bild zu ermitteln? Falls die Beschäftigung mit dem Dateiformat die einzige Möglichkeit ist die Bildabmessung zu bekommen, gibt es eine gute Delphibibliothek die viele Formate abdeckt?

Lg,
jus

anse 1. Aug 2009 18:17

Re: Die Abmessung (in cm) und Auflösung eines Bildes ermitte
 
Mußt du dafür nicht die DPI eines Bildes feststellen (wie auch immer das gehen soll)? Soweit ich weiß kann man mit einer DPI/Pixel Multiplikation auf die Originalgröße schließen.

jus 1. Aug 2009 18:45

Re: Die Abmessung (in cm) und Auflösung eines Bildes ermitte
 
Ja, über die Auflösung bekomme ich auch die Breite in Zentimeter. Habe ich die Breite bekomme ich auch die horizontale Auflösung. Die Frage ist halt nur wie bekomme ich die dpi oder die Breite in Zentimeter? :gruebel:

Lg,
jus

Klaus01 1. Aug 2009 21:11

Re: Die Abmessung (in cm) und Auflösung eines Bildes ermitte
 
Zitat:

Zitat von jus
Das Problem ist, dass ich derzeit keine Möglichkeit habe, die Bildgröße, sprich Bildbreite und Bildhöhe, in Zentimeter abzufragen, so wie es ursprünglich für das Bild angedacht war.
...
Gibt es eine allgemeine Methode die Abmessung in Zentimeter von einem Bild zu ermitteln? Falls die Beschäftigung mit dem Dateiformat die einzige Möglichkeit ist die Bildabmessung zu bekommen, gibt es eine gute Delphibibliothek die viele Formate abdeckt?

Guten Abend Jus,

die Ausmaße eines Bildes in cm stecken sind nicht in dem Bildformat (jpg,tiff) gespeichert.
Die Ausmaße in cm sind immer abhänging davon wo Du das Bild ausgebenen willst.
Das Ausgabegerät unterstützt eine gewisse Auflösung.
Bei Druckern ist sie höher 300 bzw. 600 dpi (dots per Inch) auf dem Bildschirm
sind es in der Regel 72 dpi.

Wenn Du nun ein Bild mit einer "Kantenlänge" von 1000 Pixeln (dots) hast
wird das Bild auf dem Bildschirm 35,27 cm (1000/72 * 2.54) lang sein
auf dem Drucker mit 600 dpi ist das Bild nur 4,23 cm groß.

Grüße
Klaus

jus 1. Aug 2009 22:02

Re: Die Abmessung (in cm) und Auflösung eines Bildes ermitte
 
Hallo Klaus01,

die Problematik der Ausgabe zum Drucker oder Monitor mit unterschiedlicher Auflösung ist mir bewußt. Aber ich bin mir ziemlich sicher, dass die von Anwender ursprünglich vorgegebenen Abmessungen, in welcher Form auch immer, in einem JPG oder TIF gespeichert sind.
z. B. der Photoshop kann die angedachten Abmessungen des Bilder auslesen.

Lg,
jus

Luckie 1. Aug 2009 22:30

Re: Die Abmessung (in cm) und Auflösung eines Bildes ermitte
 
Was sind denn die "angedachten" Abmessungen?

SirThornberry 1. Aug 2009 22:35

Re: Die Abmessung (in cm) und Auflösung eines Bildes ermitte
 
Die realen Abmessungen sind eigentlich immer aus der DPI-Zahl zu entnehmen. Wenn jemand ein Document mit 300 dpi einscannt so ist es unabhängig von der Darstellung auf Bildschirm etc. immer so das beim Drucken (egal welche DPI-Zahl der Drucker hat) das Bild entsprechend zur Auflösung des Druckers scaliert wird so das wieder die richtige Größe dabei raus kommt. Und auch wenn eine Grafikabteilung ein Bild mit 1200 DPI anlegt bezieht sich da rein gar nichts davon auf die Darstellung am Bildschirm sondern die 1200 DPI sind dann die Angabe wie groß das Bild nach dem Drucken ist.

jus 1. Aug 2009 23:17

Re: Die Abmessung (in cm) und Auflösung eines Bildes ermitte
 
@Luckie
OK "angedachten Abmesssungen" ist vielleicht bisschen blöd formuliert. Besser wäre wahrscheinlich "vorgegebene Auflösung" z.B. Breite 10,1cm Länge 15cm

@SirThornberry
Ich schließe mich der Meinung voll an, ich denke nämlich auch, dass die Abmessungen in irgendeiner Form in der JPG/TIF/BMP/... Datei gespeichert sind. Damit wären wir der wieder fast bei der ursprünglichen Frage:
Gibt es gute eine Bibliothek für die Ermittlung der Auflösung, ohne sich jedesmal mit der Formatdefinition auseinandersetzen zu müssen?

lg,
jus

Luckie 2. Aug 2009 01:12

Re: Die Abmessung (in cm) und Auflösung eines Bildes ermitte
 
Im Bitmap-Format sind sie bestimmt nicht gespeichert, dazu brauzchst du dir ja nur mal den Bitmap Header angucken.

Medium 2. Aug 2009 01:54

Re: Die Abmessung (in cm) und Auflösung eines Bildes ermitte
 
Im JPEG auch eher nicht, ausser evtl. in Exif Abschnitten. Formate die speziell für DTP entwickelt wurden, wie z.B. das Photoshop eigene, evtl. auch TIFF sehen solche Angaben schon eher vor - es gibt aber keinen Standard nach dem man für alle Formate in etwa gleich da dran kommt, zumal es auch optionale Angaben sein könnten. Du müsstest also entweder eine Loader-Lib finden die das für die entsprechenden Formate leistet, oder aber du legst selbst Hand an und wühlst in den Files. Der Regelfall dürfte allerdings sein, dass solche Angaben nicht hinterlegt sind.

Wenn du die Angaben dann aber dennoch mal hast, und diese in metrischer oder imperialer Einheit vorliegen, so kannst du Windows die Umrechnerei mittels SetMapMode() erledigen lassen. (DPI lassen sich ja auch leicht in die beiden o.g. Darstellungen umrechnen.)

Wenn du aber wie z.B. bei BMPs überhaupt keine Informationen ausser der absoluten Auflösung hast, dann MUSS irgend wer von Hand eine Zielgröße vorgeben um ein wohl definiertes Ergebnis zu erzielen.


Und am Rande: Die 72 DPI für Monitore sind auch eher ein grober Schätzwert - eher eine Richtgröße. Wie viel er nun wirklich genau macht bekommt man noch am ehesten heraus in dem man den User mit Linieal an den Bildschirm zitiert. Möglicherweise liefern neuere Bildschirme auch über die Datenleitung (mir fällt gerade ihr genauer Name nicht mehr ein) solche Infos, ob wie und wo man diese dann aber Abfragen kann weiss ich leider nicht. Zumal das auch wenn eher bei neueren Bildschirmen, und dann auch eher in gehobener Preisklasse implementiert ist.

Reinhard Kern 2. Aug 2009 02:21

Re: Die Abmessung (in cm) und Auflösung eines Bildes ermitte
 
Zitat:

Zitat von Luckie
Im Bitmap-Format sind sie bestimmt nicht gespeichert, dazu brauzchst du dir ja nur mal den Bitmap Header angucken.

Sind sie schon, Zitat:

"Der Bitmap Header enthält die Datei-Signatur "BM", die Dateilänge in Byte und den Abstand (Offset) zwischen Dateianfang und Datenanfang in Byte.

Im Information Header finden sich Informationen zum Bild selbst, z.B. die Höhe und Breite des Bildes, die horizontale und vertikale Auflösung in Pixel pro Meter, der Typ der Komprimierung und die Anzahl der benutzten Farben."

Ist bei GIF, PCX usw. ähnlich, es ist nur leider bei jedem Pixelformat anders definiert; ob es eine komplette Library dafür gibt, weiss ich nicht (die könnte ja auch nur mit "case pictureformat of" aufgebaut sein).

Gruss Reinhard

Luckie 2. Aug 2009 12:44

Re: Die Abmessung (in cm) und Auflösung eines Bildes ermitte
 
Zitat:

Zitat von Reinhard Kern
z.B. die Höhe und Breite des Bildes,

Ja, aber in Pixel und nicht in cm. Man muss sich das erst ausrechnen.

Reinhard Kern 2. Aug 2009 14:03

Re: Die Abmessung (in cm) und Auflösung eines Bildes ermitte
 
Zitat:

Zitat von Luckie
Zitat:

Zitat von Reinhard Kern
z.B. die Höhe und Breite des Bildes,

Ja, aber in Pixel und nicht in cm. Man muss sich das erst ausrechnen.

Hi,
wenn man 3 Werte hat, die sich auseinander ergeben (Breite, Pixel hor., dpi hor), muss man ja nicht redundant alle 3 speichern. Für einen Computer ist das ja keine unanständige Zumutung, sich das jeweils fehlende zu berechnen.

Gruss Reinhard

jus 3. Aug 2009 23:38

Re: Die Abmessung (in cm) und Auflösung eines Bildes ermitte
 
Zunächst mal vielen Dank für die Anworten! :-D
Es bleibt mir wohl nicht anderes übrig als mich selber mit den Formatdefinitionen herumzuschlagen. Eine Bibliothek dafür wäre wohl zu schön und zu einfach gewesen. :zwinker: Ich habe soeben bei einer JPG-Datei von meiner Sony Kamera festgestellt, dass der Tag/Marker, worin die Auflösung gespeichert werden kann, garnicht vorhanden ist. :cry: Aber der Photoshop kann es trotzdem auslesen. Ich vermute, dass der Photoshop wohl zusätzlich die Exif Daten für die Auswertung der Auflösung ranzieht. Hat wer eine Idee wo die Auflösung noch gespeichert sein könnte?

Lg,
jus

Mithrandir 4. Aug 2009 08:05

Re: Die Abmessung (in cm) und Auflösung eines Bildes ermitte
 
Zitat:

Zitat von jus
Ich vermute, dass der Photoshop wohl zusätzlich die Exif Daten für die Auswertung der Auflösung ranzieht. Hat wer eine Idee wo die Auflösung noch gespeichert sein könnte?

Wer hindert dich daran, dir die Exif Daten anzusehen und auszuwerten? Diese Unit hilft dir dabei, und Beispiele, wie die Tags heißen, gibt es hier. Die Specs für den Standard finden sich auf derselben Seite. ;)

//Nachschlach:

Hmm... Wenn man sich die Samples nochmal ansieht, dann stellt man fest, dass sich die X Resolution, Y Resolution und Resolution Unit im IFD 0 Abschnitt befinden. Ob sich der mit der Unit auch auslesen lässt, das weiß ich nicht, aber vermutlich ist das der Weg...


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