You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

88 lines
3.5 KiB
Java

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();
// }
// }
}