# Bildeigenschaften abfragen (Metadaten)



## geneticZ (7. Dez 2009)

Hallo,
gibt es die Möglichkeit von einem Bild die Eigenschaften abzufragen?
Also ich meine sowas wie Autoren, Titel etc?

Bis jetzt hab ich leider nur heraus gefunden wie ich mittels:

```
IIOMetadata metadata = reader.getImageMetadata(0);
```
Dimension, Compression und ähnliches geliefert bekomme. Das ist ja auch super, aber ich hätte eben gerne
diese "anderen" Bildeigenschaften. Geht das?

Danke für die Hilfe
geneticZ


----------



## Developer_X (7. Dez 2009)

Ich weiß nicht, ich glaube das geht nicht, ich würd sagen, du kannst folgendes über eine Bilddatei rausbekommen, wenn sie GIF, PNG oder JPG ist :

- Name der Datei
- Anzahl der Pixel in X Richtung
- Anzahl der Pixel in Y Richtung

wie?
So:
*Name*
Wenn du den Namen der Datei willst, ist das doch klar, auch ohne das Laden der datei :

```
String image_path = "Bild_01.png";
```

*Anzahl der Pixel in X Richtung && Anzahl der Pixel in Y Richtung*
Das kriegst du wie folgt :

```
String image_path = "Bild_01.png";
Image image = null;
try
{
	image = ImageIO.read(new File(image_path));
}
catch(Exception e)
{
	e.printStackTrace();
}

int breite_des_images = image.getWidth(null);
// wenn du keinen ImageObserver hast, so wie es der Parameter verlangt, kannste auch null nehmen,
// ansonsten, das Component worauf du gerade schreibst
int hoehe_des_images = image.getHeight(null);
```

Ich hoffe meine Antwort konnte dir weiterhelfen,
Developer_X


----------



## eRaaaa (7. Dez 2009)

Developer_X hat gesagt.:


> *Name*
> Wenn du den Namen der Datei willst, ist das doch klar, auch ohne das Laden der datei :
> 
> ```
> ...



ich hau mich weg :lol: meinst du das echt ernst? 


wobei ich mich allerdings auch frage ob wir bei


> Also ich meine sowas wie Autoren, Titel etc?



noch von bildern, oder von mp3s oder so sprechen?!


----------



## Developer_X (7. Dez 2009)

eRaaaa hat gesagt.:


> ich hau mich weg :lol: meinst du das echt ernst?



Warum, sollte ich das nicht ernst meinen, wenn er die Jar fertig hat, und dann startet, und das bild im selben vezeichnis ist, warum nicht?
Das nehme ich als Provokation an,


----------



## Marco13 (7. Dez 2009)

Davon ausgehend, dass du das nur auf Bilder beziehst, die diese Informationen auch _enthalten_  : Bist du schonmal den kompletten IIOMetadata-Baum durchgegangen (z.B. rekursiv)? Ich weiß nicht, welche Teile dieser Metadaten so weit "standardisiert" sind, dass man sie sich (wie etwa den CompressionNode) dediziert mit einer eigenen Methode abholen kann, und welche Teile man sich eher "zusammenreimen" muss.... Wenn man sowas wie Standard Metadata Format Specification sieht, kann es gut sein, dass sich Dinge wie Titel & Autor irgendwo, z.B. im StandardTextNode verstecken... (bin aber nicht sicher...)


----------



## Ebenius (7. Dez 2009)

Hilft Dir eventuell dieser Artikel weiter? Reading and writing JPEG metadata (EXIF) from Java with Sanselan | Screaming Penguin

Nicht, dass ich vom Thema Ahnung hätte... ;-)

Ebenius


----------



## geneticZ (8. Dez 2009)

Danke für den Artikel!
Ja es geht um Bilder und ja ich hab mir bereits den ganzen Baum abbilden lassen. Leider sind eben so Dinge wie Titel oder Autor nicht mit dabei... Aber vielleicht bringt mir ja der Artikel die Erleuchtung sonst muss ich wohl irgendwie mit XMP rumhantieren. ;-(


----------



## Spacerat (8. Dez 2009)

Ohne Zusätze sollte die Methode die du Oben verwendest das alles schon liefern, sofern es vom Format her unterstützt wird. Kompression, Dimension, Farbtiefe und Dateiart sind im übrigen keine Metadaten, auch wenn diese in diesem Baum auftauchen könnten. Sie sind fester Bestantteil jeder Bilddatei und stehen bereits im Header. Metadaten dagegen tauchen meist erst am Dateiende auf. Deswegen ist der Baum auch erst vollständig, wenn die Datei komplett verarbeitet, also der Lesevorgang abgeschlossen wurde.
@Edit: Scheinbar ist das Handling von Metadaten auch von der Implementation der jeweiligen Reader abhängig. Sieht so aus, als würde es sogar Reader geben, bei denen man das erst einschalten muss.


----------

