From e6bd94025f498a53db8726904125facae89df18f Mon Sep 17 00:00:00 2001 From: Harald Kuhr Date: Fri, 10 Jul 2020 22:26:33 +0200 Subject: [PATCH] JPEG Metadata clean-up --- .../imageio/plugins/jpeg/JPEGImage10Metadata.java | 9 +++++++-- .../plugins/jpeg/JPEGImage10MetadataCleaner.java | 13 ++++--------- .../jpeg/JPEGImage10MetadataCleanerTest.java | 4 ++-- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/imageio/imageio-jpeg/src/main/java/com/twelvemonkeys/imageio/plugins/jpeg/JPEGImage10Metadata.java b/imageio/imageio-jpeg/src/main/java/com/twelvemonkeys/imageio/plugins/jpeg/JPEGImage10Metadata.java index 9da588f0..fb0dc5ee 100644 --- a/imageio/imageio-jpeg/src/main/java/com/twelvemonkeys/imageio/plugins/jpeg/JPEGImage10Metadata.java +++ b/imageio/imageio-jpeg/src/main/java/com/twelvemonkeys/imageio/plugins/jpeg/JPEGImage10Metadata.java @@ -51,6 +51,11 @@ import java.util.List; */ class JPEGImage10Metadata extends AbstractMetadata { + /** + * Native metadata format name + */ + static final String JAVAX_IMAGEIO_JPEG_IMAGE_1_0 = "javax_imageio_jpeg_image_1.0"; + // TODO: Create our own native format, which is simply markerSequence from the Sun format, with the segments as-is, in sequence... // + add special case for app segments, containing appXX + identifier (ie. to or @@ -66,7 +71,7 @@ class JPEGImage10Metadata extends AbstractMetadata { // TODO: Consider moving all the metadata stuff from the reader, over here... JPEGImage10Metadata(final List segments, Frame frame, JFIF jfif, JFXX jfxx, ICC_Profile embeddedICCProfile, AdobeDCT adobeDCT, final CompoundDirectory exif) { - super(true, JPEGImage10MetadataCleaner.JAVAX_IMAGEIO_JPEG_IMAGE_1_0, null, null, null); + super(true, JAVAX_IMAGEIO_JPEG_IMAGE_1_0, null, null, null); this.segments = segments; this.frame = frame; @@ -79,7 +84,7 @@ class JPEGImage10Metadata extends AbstractMetadata { @Override protected Node getNativeTree() { - IIOMetadataNode root = new IIOMetadataNode(JPEGImage10MetadataCleaner.JAVAX_IMAGEIO_JPEG_IMAGE_1_0); + IIOMetadataNode root = new IIOMetadataNode(JAVAX_IMAGEIO_JPEG_IMAGE_1_0); IIOMetadataNode jpegVariety = new IIOMetadataNode("JPEGvariety"); boolean isJFIF = jfif != null; diff --git a/imageio/imageio-jpeg/src/main/java/com/twelvemonkeys/imageio/plugins/jpeg/JPEGImage10MetadataCleaner.java b/imageio/imageio-jpeg/src/main/java/com/twelvemonkeys/imageio/plugins/jpeg/JPEGImage10MetadataCleaner.java index d6ab49f0..6ba45485 100644 --- a/imageio/imageio-jpeg/src/main/java/com/twelvemonkeys/imageio/plugins/jpeg/JPEGImage10MetadataCleaner.java +++ b/imageio/imageio-jpeg/src/main/java/com/twelvemonkeys/imageio/plugins/jpeg/JPEGImage10MetadataCleaner.java @@ -52,11 +52,6 @@ import java.util.List; */ final class JPEGImage10MetadataCleaner { - /** - * Native metadata format name - */ - static final String JAVAX_IMAGEIO_JPEG_IMAGE_1_0 = "javax_imageio_jpeg_image_1.0"; - private final JPEGImageReader reader; JPEGImage10MetadataCleaner(final JPEGImageReader reader) { @@ -93,7 +88,7 @@ final class JPEGImage10MetadataCleaner { the version to the method/constructor used to obtain an IIOMetadata object.) */ - IIOMetadataNode tree = (IIOMetadataNode) imageMetadata.getAsTree(JAVAX_IMAGEIO_JPEG_IMAGE_1_0); + IIOMetadataNode tree = (IIOMetadataNode) imageMetadata.getAsTree(JPEGImage10Metadata.JAVAX_IMAGEIO_JPEG_IMAGE_1_0); IIOMetadataNode jpegVariety = (IIOMetadataNode) tree.getElementsByTagName("JPEGvariety").item(0); IIOMetadataNode markerSequence = (IIOMetadataNode) tree.getElementsByTagName("markerSequence").item(0); @@ -145,7 +140,7 @@ final class JPEGImage10MetadataCleaner { jfifThumb = new IIOMetadataNode("JFIFthumbJPEG"); // Contains it's own "markerSequence" with full DHT, DQT, SOF etc... IIOMetadata thumbMeta = thumbnailReader.readMetadata(); - Node thumbTree = thumbMeta.getAsTree(JAVAX_IMAGEIO_JPEG_IMAGE_1_0); + Node thumbTree = thumbMeta.getAsTree(JPEGImage10Metadata.JAVAX_IMAGEIO_JPEG_IMAGE_1_0); jfifThumb.appendChild(thumbTree.getLastChild()); app0JFXX.appendChild(jfifThumb); break; @@ -307,11 +302,11 @@ final class JPEGImage10MetadataCleaner { } try { - imageMetadata.setFromTree(JAVAX_IMAGEIO_JPEG_IMAGE_1_0, tree); + imageMetadata.setFromTree(JPEGImage10Metadata.JAVAX_IMAGEIO_JPEG_IMAGE_1_0, tree); } catch (IIOInvalidTreeException e) { if (JPEGImageReader.DEBUG) { - new XMLSerializer(System.out, System.getProperty("file.encoding")).serialize(imageMetadata.getAsTree(JAVAX_IMAGEIO_JPEG_IMAGE_1_0), false); + new XMLSerializer(System.out, System.getProperty("file.encoding")).serialize(imageMetadata.getAsTree(JPEGImage10Metadata.JAVAX_IMAGEIO_JPEG_IMAGE_1_0), false); System.out.println("-- 8< --"); new XMLSerializer(System.out, System.getProperty("file.encoding")).serialize(tree, false); } diff --git a/imageio/imageio-jpeg/src/test/java/com/twelvemonkeys/imageio/plugins/jpeg/JPEGImage10MetadataCleanerTest.java b/imageio/imageio-jpeg/src/test/java/com/twelvemonkeys/imageio/plugins/jpeg/JPEGImage10MetadataCleanerTest.java index 190074e2..10af48ee 100644 --- a/imageio/imageio-jpeg/src/test/java/com/twelvemonkeys/imageio/plugins/jpeg/JPEGImage10MetadataCleanerTest.java +++ b/imageio/imageio-jpeg/src/test/java/com/twelvemonkeys/imageio/plugins/jpeg/JPEGImage10MetadataCleanerTest.java @@ -85,12 +85,12 @@ public class JPEGImage10MetadataCleanerTest { reader.setInput(input); IIOMetadata original = origReader.getImageMetadata(0); - IIOMetadataNode origTree = (IIOMetadataNode) original.getAsTree(JPEGImage10MetadataCleaner.JAVAX_IMAGEIO_JPEG_IMAGE_1_0); + IIOMetadataNode origTree = (IIOMetadataNode) original.getAsTree(JPEGImage10Metadata.JAVAX_IMAGEIO_JPEG_IMAGE_1_0); JPEGImage10MetadataCleaner cleaner = new JPEGImage10MetadataCleaner((JPEGImageReader) reader); IIOMetadata cleaned = cleaner.cleanMetadata(origReader.getImageMetadata(0)); - IIOMetadataNode cleanTree = (IIOMetadataNode) cleaned.getAsTree(JPEGImage10MetadataCleaner.JAVAX_IMAGEIO_JPEG_IMAGE_1_0); + IIOMetadataNode cleanTree = (IIOMetadataNode) cleaned.getAsTree(JPEGImage10Metadata.JAVAX_IMAGEIO_JPEG_IMAGE_1_0); NodeList origDHT = origTree.getElementsByTagName("dht"); assertEquals(1, origDHT.getLength());