您的位置 首页 java

Java读取图片EXIF信息

前段时间后台搞了个图片和视频库,看到后台.net的同事获取了EXIF信息。今天也试了一下。分享交流一下。

EXIF是什么?

EXIF格式就是在JPEG格式头部插入了数码照片的信息,包括拍摄时的光圈、快门、白平衡、ISO、焦距、日期时间等各种和拍摄条件以及相机品牌、型号、色彩编码、拍摄时录制的声音以及全球定位系统(GPS)、缩略图等。

准备:

在GitHub上找到了metadata-extractor这个开源库(),它支持.NET PHP、JAVA,还支持其他图片格式和视频喔。估计后台的同事也是用它,我们试试。

使用:

我们通过Maven方式导入到项目中

 <dependency>
  <groupId>com.drewnoakes</groupId>
  <artifactId>metadata-extractor</artifactId>
  <version>2.14.0</version>
</dependency>
  

定义一个方法,返回一个EXIF信息的集合,直接使用即可

    /**
     * 读取图片EXIF信息
     *
     * @param imagePath 图片路径
     */
    public static List<String> readImageEXIF(String imagePath) throws JpegProcessingException, IOException {
        File imageFile = new File(imagePath);
        List<String> exifLists = new ArrayList<>();

        Metadata metadata;
        metadata = JpegMetadataReader.readMetadata(imageFile);
        Iterator<Directory> iterator = metadata.getDirectories().iterator();
        while (iterator.hasNext()) {
            Directory exif = iterator.next();
            Iterator<Tag> tags = exif.getTags().iterator();
            while (tags.hasNext()) {
                Tag tag = tags.next();
                logger.info(tag);
            }
        }
        return exifLists;
    }  

效果:

没办法这个标准是外国人定义的,只能返回英文。要转换中文只能自己匹配或者调用翻译接口了

 [JPEG] Compression Type - Baseline
[JPEG] Data Precision - 8 bits
[JPEG] Image Height - 1180 pixels
[JPEG] Image Width - 2448 pixels
[JPEG] Number of Components - 3
[JPEG] Component 1 - Y component: Quantization table 0, Sampling factors 2 horiz/2 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
[Exif SubIFD] Exif Version - 2.10
[Exif SubIFD] User Comment - {"Version":"1.0.0","BeautyInfo":{"IsAIBeauty":false,"IsOldBeauty":true,"IsSkinColour":false,"SwitchMedicatedAcne":false,"IsBrightEyes":false,"IsReduceBlackEyes":false,"IsSharpen":true,"OldBeautyCount":1,"OldBeautyValue":"[0.5]"},"FaceliftInfo":{"IsChangeFacelift":false,"IsChangeThinFace":false,"IsChangeEyeLift":false,"IsChangeFaceChin":false,"IsChangeNose":false,"IsChangeMouth":false},"FilterInfo":{"IsUseFilter":true,"FilterCount":1,"FilterValueList":"[0.8]"},"ARInfo":{"IsUseAR":false},"MakeupInfo":{"IsUseMakeup":false},"HandlerInfo":{"AppName":2},"SoftHairInfo":{"IsUseSoftHair":false}}
[Exif SubIFD] FlashPix Version - 1.00
[Exif SubIFD] Color Space - Undefined
[Exif IFD0] X Resolution - 72 dots per inch
[Exif IFD0] Y Resolution - 72 dots per inch
[Exif IFD0] Resolution Unit - Inch
[File] File Name - MTXX_20190826180013.jpg
[File] File Size - 1971156 bytes
[File] File Modified Date - Mon Aug 26 18:00:14 CST 2019
 [JFIF] Version - 1.1
[JFIF] Resolution Units - none
[JFIF] X Resolution - 1 dot
[JFIF] Y Resolution - 1 dot  

文章来源:智云一二三科技

文章标题:Java读取图片EXIF信息

文章地址:https://www.zhihuclub.com/184184.shtml

关于作者: 智云科技

热门文章

网站地图