/**
* @Description: 判断图片是否被PS过
* @Param: [picPath]
* @return: java.lang.String
* @Author: chuanyin.li
* @Date: 2018/11/8
*/
public static String isPsFlag(String picPath){
String isPsFlag = "0";
try {
File jpegFile = new File(picPath);
Metadata metadata = JpegMetadataReader.readMetadata(jpegFile);
Directory exif = metadata.getDirectory(ExifDirectory.class);//这里要稍微注意下
Iterator tags = exif.getTagIterator();
while (tags.hasNext()) {
Tag tag = (Tag)tags.next();
System.out.println(tag+"==="+tag.getDirectoryName()+"====="+tag.getTagName()+"====="+tag.getDescription());
if(tag.getDescription().contains("Adobe Photoshop"))
isPsFlag = "1";
}
} catch (Exception e) {
e.printStackTrace();
}
return isPsFlag;
}
/**
* @Description: 获取文件 exif信息
* @Param: [exif]
* @return: java.lang.String
* @Author: chuanyin.li
* @Date: 2018/11/8
*/
public static String getOrientationDescription(Directory exif) throws MetadataException {
if (!exif.containsTag(ExifDirectory.TAG_ORIENTATION)) return null;
int orientation = exif.getInt(ExifDirectory.TAG_ORIENTATION);
switch (orientation) {
case 1:
return "Top, left side (Horizontal / normal)";
case 2:
return "Top, right side (Mirror horizontal)";
case 3:
return "Bottom, right side (Rotate 180)";
case 4:
return "Bottom, left side (Mirror vertical)";
case 5:
return "Left side, top (Mirror horizontal and rotate 270 CW)";
case 6:
return "Right side, top (Rotate 90 CW)";
case 7:
return "Right side, bottom (Mirror horizontal and rotate 90 CW)";
case 8:
return "Left side, bottom (Rotate 270 CW)";
default:
return String.valueOf(orientation);
}
}
分享到:
相关推荐
以`Apache Commons Imaging`为例,我们可以使用以下步骤来获取EXIF信息: 1. 引入库:在项目中添加Apache Commons Imaging依赖。如果你使用Maven,可以在`pom.xml`文件中添加: ```xml <groupId>org.apache....
在Java编程环境中,获取相片的EXIF信息并进行自动缩放是一项常见的任务,尤其是在处理图像数据时。EXIF(Exchangeable image file format)是一种元数据标准,它存储了数码照片的各种信息,如拍摄时间、相机型号、...
本篇文章将详细介绍如何使用Java来处理这些EXIF信息,特别是与GPS相关的部分。 首先,要处理EXIF信息,我们需要一个Java库,如Apache Commons Imaging(以前称为Sanselan)或metadata-extractor。这两个库都提供了...
通过以上步骤,你就能使用metadata-extractor库成功地从Java程序中读取照片的Exif信息了。这个强大的工具可以帮助开发者在处理图像时获取更多有价值的数据,无论是进行数据分析、图像编辑还是元数据管理,都能发挥...
理解并获取Exif信息对于摄影爱好者、图像处理软件开发者以及数据分析人员来说都具有重要的价值。 首先,Exif信息主要由相机硬件在拍摄时自动记录。当按下快门时,相机内部传感器捕获图像,并同时记录下与拍摄条件...
在编程中,获取Exif信息的基本步骤包括: 1. 选择合适的库:根据所使用的编程语言选择对应的Exif读取库。 2. 打开图像文件:加载包含Exif信息的图片文件到内存。 3. 读取Exif数据:调用库提供的函数或方法,读取...
以下是使用`metadata-extractor`库获取EXIF信息的基本步骤: 1. 添加依赖:在项目中引入`metadata-extractor`库,如果是Maven项目,可以在`pom.xml`文件中添加以下依赖: ```xml <groupId>...
本教程将重点讲解如何使用Java语言读取图片的EXIF信息,特别是拍摄时间和相机厂商。 首先,我们需要一个能够解析EXIF信息的库。Java社区中广泛使用的开源库是Apache Commons Imaging(以前称为Apache Sanselan),...
总的来说,要从Java程序中读取和操作图像文件的EXIF信息,我们需要metadata-extractor-2.6.2.jar和xmpcore.jar这两个库。通过它们,我们可以方便地访问和处理图像的元数据,从而实现如照片信息分析、编辑或基于元...
在Java编程中,读取图片的EXIF信息是一项常见的任务,尤其对于处理摄影或图像处理相关的应用程序来说。EXIF(Exchangeable Image File Format)是一种存储在数字图像文件中元数据的格式,它提供了关于照片的各种详细...
### 修改图片EXIF信息示例(使用MediaUtil) #### 一、引言 在数字图像处理领域,EXIF(Exchangeable Image File Format)是一种标准格式,用于存储图像文件中的元数据,包括拍摄时间、相机型号、光圈值、快门速度...
综上所述,这个项目涵盖了Java处理照片元数据的关键技术,通过学习和实践,开发者可以掌握如何在Java环境中读取和解析照片的Exif信息,实现照片的精确定位和分析。同时,提供的测试照片也是一个很好的实践素材,可以...
使用`java.net.HttpURLConnection`或Apache HttpClient库可以获取这些信息。 7. **Java类的元数据** 反射API(`java.lang.reflect`包)允许在运行时检查类、接口、字段和方法的元数据。例如,`Class`对象提供了...
下面我们将深入探讨如何在Android应用中获取Exif信息。 1. **ExifInterface类的使用** Android SDK提供了一个名为`ExifInterface`的类,用于处理Exif信息。首先,你需要创建一个`ExifInterface`实例,传入图片文件...
3. 读取Exif:调用特定方法获取Exif信息,如`getExif()`。 4. 修改Exif:找到对应的Exif字段,然后设置新的值,如`setDateTimeOriginal(newDate)`。 5. 写回Exif:使用`saveMetadata()`方法将修改后的Exif信息写回到...
在项目中添加此库后,可以通过以下步骤获取Exif信息: 1. **添加依赖**:在Maven项目中,可以在pom.xml文件中添加如下依赖: ```xml <groupId>org.apache.commons <artifactId>commons-imaging <version>1.2 ...
例如,你可以通过以下代码获取Exif信息: ```python from PIL import Image img = Image.open('example.jpg') exif_data = img._getexif() # 如果图片包含Exif信息,返回一个字典,否则返回None if exif_data ...
在Android平台上,开发人员经常需要处理图像数据,其中包括读取图片的Exif信息。Exif(Exchangeable Image File Format)是一种扩展的JPEG格式,用于存储与图像相关的信息,如拍摄日期、时间、地理位置、相机型号、...
总的来说,"exif.rar"提供的资源是一个自定义的Android Java库,用于读取和操作JPEG图像的Exif信息。通过深入理解和使用这个库,开发者可以更好地控制和利用图像的元数据,为应用程序增加丰富的功能,如图片编辑、...