|
|
|
@ -0,0 +1,87 @@
|
|
|
|
|
import com.drew.imaging.ImageMetadataReader;
|
|
|
|
|
import com.drew.imaging.ImageProcessingException;
|
|
|
|
|
import com.drew.metadata.Directory;
|
|
|
|
|
import com.drew.metadata.Metadata;
|
|
|
|
|
import com.drew.metadata.Tag;
|
|
|
|
|
import com.drew.metadata.exif.ExifSubIFDDirectory;
|
|
|
|
|
|
|
|
|
|
import java.awt.image.BufferedImage;
|
|
|
|
|
import java.io.File;
|
|
|
|
|
import javax.imageio.ImageIO;
|
|
|
|
|
import javax.imageio.ImageReader;
|
|
|
|
|
import javax.imageio.stream.ImageInputStream;
|
|
|
|
|
import java.io.File;
|
|
|
|
|
import java.io.IOException;
|
|
|
|
|
import java.util.Date;
|
|
|
|
|
|
|
|
|
|
public class JpmTest {
|
|
|
|
|
|
|
|
|
|
public void viewExif(String filePath) throws ImageProcessingException, IOException {
|
|
|
|
|
File jpegFile = new File(filePath);
|
|
|
|
|
Metadata metadata = ImageMetadataReader.readMetadata(jpegFile);
|
|
|
|
|
// 打印所有Tag
|
|
|
|
|
for (Directory directory : metadata.getDirectories()) {
|
|
|
|
|
for (Tag tag : directory.getTags()) {
|
|
|
|
|
System.out.println(tag);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// obtain the Exif directory
|
|
|
|
|
ExifSubIFDDirectory directory = metadata.getFirstDirectoryOfType(ExifSubIFDDirectory.class);
|
|
|
|
|
|
|
|
|
|
// 查询特定Tag:拍摄日期(OS X上叫内容创建时间)
|
|
|
|
|
Date date = directory.getDate(ExifSubIFDDirectory.TAG_DATETIME_ORIGINAL);
|
|
|
|
|
}
|
|
|
|
|
public static void main(String[] args) throws ImageProcessingException, IOException {
|
|
|
|
|
// File file = new File("C:\\Users\\zhanghai\\Documents\\WeChat Files\\wxid_wexo4ubjorso22\\FileStorage\\File\\2023-11\\JP2/16-35数转模 - 0001.jp2");
|
|
|
|
|
// ImageInfo imageInfo = Imaging.getImageInfo(file);
|
|
|
|
|
// int height = imageInfo.getHeight();
|
|
|
|
|
// int width = imageInfo.getWidth();
|
|
|
|
|
// int physicalHeightDpi = imageInfo.getPhysicalHeightDpi();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
String filePath = "C:\\Users\\zhanghai\\Documents\\WeChat Files\\wxid_wexo4ubjorso22\\FileStorage\\File\\2023-11\\JP2/16-35数转模 - 0001.jp2"; // 替换成你的 JP2 图像文件路径
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
// 读取 JPEG 2000 图像文件
|
|
|
|
|
File inputFile = new File(filePath);
|
|
|
|
|
BufferedImage image = ImageIO.read(inputFile);
|
|
|
|
|
// ImageInfo imageInfo = Imaging.getImageInfo(inputFile);
|
|
|
|
|
int height = image.getHeight();
|
|
|
|
|
int width = image.getWidth();
|
|
|
|
|
// int physicalHeightDpi = image.getPhysicalHeightDpi();
|
|
|
|
|
System.out.println(height);
|
|
|
|
|
System.out.println(width);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} catch (IOException e) {
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
new JpmTest().viewExif(filePath);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// public static void main3(String[] args) {
|
|
|
|
|
//
|
|
|
|
|
// String filePath = "C:\\Users\\zhanghai\\Documents\\WeChat Files\\wxid_wexo4ubjorso22\\FileStorage\\File\\2023-11\\JP2/16-35数转模 - 0001.jp2"; // 替换成你的 JP2 图像文件路径
|
|
|
|
|
// try {
|
|
|
|
|
// File inputFile = new File(filePath);
|
|
|
|
|
//
|
|
|
|
|
// Metadata metadata = ImageMetadataReader.readMetadata(inputFile);
|
|
|
|
|
// ExifIFD0Directory exifIFD0Directory = metadata.getFirstDirectoryOfType(ExifIFD0Directory.class);
|
|
|
|
|
//
|
|
|
|
|
// if (exifIFD0Directory != null) {
|
|
|
|
|
// // Get X and Y DPI values
|
|
|
|
|
// int xDpi = exifIFD0Directory.getInt(ExifIFD0Directory.TAG_X_RESOLUTION);
|
|
|
|
|
// int yDpi = exifIFD0Directory.getInt(ExifIFD0Directory.TAG_Y_RESOLUTION);
|
|
|
|
|
//
|
|
|
|
|
// System.out.println("X DPI: " + xDpi);
|
|
|
|
|
// System.out.println("Y DPI: " + yDpi);
|
|
|
|
|
// } else {
|
|
|
|
|
// System.out.println("DPI information not found in the metadata.");
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// } catch (Exception e) {
|
|
|
|
|
// e.printStackTrace();
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
}
|