В файле какого-нибудь изображения хранится очень много всякой полезной информации, например: дата съемки, размеры, всякие уровни компресии, марка и модель фотоаппарата и т д … Хотелось бы как-то получить ее в java

Все это в java можно вытащить с помощью удобной библиотеки metadata-extractor. Она умеет понимать следущие форматы:

Например вот Exif

А вот краткий пример на groovy, который позволяет получить достаточно много информации

{% highlight groovy %} @Grapes( @Grab(group=‘com.drewnoakes’, module=‘metadata-extractor’, version=‘2.7.0’) )

import com.drew.metadata.; import com.drew.metadata.exif.; import com.drew.imaging.ImageMetadataReader;

File jpegFile = new File(“C:\Users\Public\Pictures\Sample Pictures\Koala.jpg”); Metadata metadata = ImageMetadataReader.readMetadata(jpegFile);

for (Directory directory : metadata.getDirectories()) { for (Tag tag : directory.getTags()) { System.out.println(tag); } }

// obtain the Exif directory ExifSubIFDDirectory directory = metadata.getDirectory(ExifSubIFDDirectory.class);

// query the tag’s value Date date = directory.getDate(ExifSubIFDDirectory.TAG_DATETIME_ORIGINAL);

println ExifSubIFDDirectory.TAG_DATETIME_ORIGINAL + “=” + date {% endhighlight %}

{% highlight bash %} [JPEG] Compression Type - Baseline [JPEG] Data Precision - 8 bits [JPEG] Image Height - 768 pixels [JPEG] Image Width - 1024 pixels [JPEG] Number of Components - 3 [JPEG] Component 1 - Y component: Quantization table 0, Sampling factors 1 horiz/1 vert [JPEG] Component 2 - Cb component: Quantization table 1, Sampling factors 1 horiz/1 vert [JPEG] Component 3 - Cr component: Quantization table 1, Sampling factors 1 horiz/1 vert [JFIF] Version - 1.2 [JFIF] Resolution Units - inch [JFIF] X Resolution - 96 dots [JFIF] Y Resolution - 96 dots [Exif IFD0] Date/Time - 2009:03:12 13:48:28 [Exif IFD0] Artist - Corbis [Exif IFD0] Unknown tag (0x4746) - 4 [Exif IFD0] Unknown tag (0x4749) - 63 [Exif IFD0] Windows XP Author - ?? ???? [Exif IFD0] Unknown tag (0xea1c) - [2036 bytes] [Exif SubIFD] Date/Time Original - 2008:02:11 11:32:43 [Exif SubIFD] Date/Time Digitized - 2008:02:11 11:32:43 [Exif SubIFD] Sub-Sec Time Original - 17 [Exif SubIFD] Sub-Sec Time Digitized - 17 [Exif SubIFD] Unknown tag (0xea1c) - [1972 bytes] [Exif Thumbnail] Thumbnail Compression - JPEG (old-style) [Exif Thumbnail] X Resolution - 72 dots per unit [Exif Thumbnail] Y Resolution - 72 dots per unit [Exif Thumbnail] Thumbnail Offset - 313 bytes [Exif Thumbnail] Thumbnail Length - 4834 bytes [Xmp] Rating - 4.0 [Adobe JPEG] DCT Encode Version - 1 [Adobe JPEG] Flags 0 - 0 [Adobe JPEG] Flags 1 - 0 [Adobe JPEG] Color Transform - YCbCr 36867=Mon Feb 11 11:32:43 FET 2008 {% endhighlight %}