2014年2月18日火曜日

Apache Commons Imaging EXIF 表示

pom.xml へ Commons Imaging 追加
<repositories>
    <repository>
        <id>apache.snapshots</id>
        <url>http://repository.apache.org/snapshots/</url>
    </repository>
</repositories>

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-imaging</artifactId>
    <version>1.0-SNAPSHOT</version>
</dependency>

EXIF 表示サンプルコード
try {
    IImageMetadata metadata = Imaging.getMetadata(new File("c:\\Temp\\test.jpg"));
    if (metadata instanceof JpegImageMetadata) {
        JpegImageMetadata jpegMetadata = (JpegImageMetadata)metadata;
        TiffImageMetadata exif = jpegMetadata.getExif();
        List<? extends IImageMetadataItem> dirs = exif.getDirectories();
        for (int i = 0; i < dirs.size(); i++) {
            TiffImageMetadata.Directory dir = (TiffImageMetadata.Directory) dirs.get(i);
            logger.debug("dir type = " + dir.type);
            List<TiffField> fieldList = dir.getAllFields();
            for (TiffField tiffField: fieldList) {
                logger.debug("tagInfo tag = " + tiffField.getTagInfo().tag);
                logger.debug("tagInfo name = " + tiffField.getTagInfo().name);
                if (FieldType.UNDEFINED.equals(tiffField.getFieldType())) {
                    logger.debug("field value = " + tiffField.getValueDescription());
                } else {
                    logger.debug("field value = " + tiffField.getValue());
                }
            }
        }
    }
} catch (Exception ex) {
    ex.printStackTrace();
}

ログを出力する為、log4j.xml を変更
<logger name="jp.s6131.sample">
    <level value="debug" />
</logger>


人気ブログランキングへ