diff --git a/pom.xml b/pom.xml index dcad3a7..7bbfff3 100644 --- a/pom.xml +++ b/pom.xml @@ -63,6 +63,39 @@ gson 2.10 + + com.github.jai-imageio + jai-imageio-jpeg2000 + 1.4.0 + + + + com.drewnoakes + metadata-extractor + 2.18.0 + + + + org.apache.commons + commons-imaging + 1.0-alpha3 + + + + + com.github.jai-imageio + jai-imageio-core + 1.4.0 + + + + com.github.jai-imageio + jai-imageio-jpeg2000 + 1.3.0 + + + + diff --git a/src/test/java/Jpm2.java b/src/test/java/Jpm2.java new file mode 100644 index 0000000..d2b27b5 --- /dev/null +++ b/src/test/java/Jpm2.java @@ -0,0 +1,20 @@ +import com.github.jaiimageio.jpeg2000.impl.J2KImageReader; +import com.github.jaiimageio.jpeg2000.impl.J2KImageReaderSpi; +import org.apache.commons.imaging.ImageInfo; +import org.apache.commons.imaging.ImageReadException; +import org.apache.commons.imaging.ImageWriteException; +import org.apache.commons.imaging.Imaging; +import org.apache.commons.imaging.common.ImageMetadata; +import org.apache.commons.imaging.common.RationalNumber; + +import javax.imageio.ImageIO; +import javax.imageio.ImageReader; +import javax.imageio.metadata.IIOMetadata; +import javax.imageio.stream.ImageInputStream; +import java.io.File; +import java.io.IOException; + +public class Jpm2 { + + +} diff --git a/src/test/java/JpmTest.java b/src/test/java/JpmTest.java new file mode 100644 index 0000000..39d45a0 --- /dev/null +++ b/src/test/java/JpmTest.java @@ -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(); +// } +// } +}