From a6cd991722b125abf95cc3512b05438206e6c017 Mon Sep 17 00:00:00 2001 From: Oliver Schmidtmer Date: Wed, 1 Jun 2016 14:21:07 +0200 Subject: [PATCH] TiffWriter: copy image metadata to output --- .../imageio/plugins/tiff/TIFFImageWriter.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/imageio/imageio-tiff/src/main/java/com/twelvemonkeys/imageio/plugins/tiff/TIFFImageWriter.java b/imageio/imageio-tiff/src/main/java/com/twelvemonkeys/imageio/plugins/tiff/TIFFImageWriter.java index f26adcb3..15d934fa 100644 --- a/imageio/imageio-tiff/src/main/java/com/twelvemonkeys/imageio/plugins/tiff/TIFFImageWriter.java +++ b/imageio/imageio-tiff/src/main/java/com/twelvemonkeys/imageio/plugins/tiff/TIFFImageWriter.java @@ -338,6 +338,27 @@ public final class TIFFImageWriter extends ImageWriterBase { ? software : new TIFFEntry(TIFF.TAG_SOFTWARE, "TwelveMonkeys ImageIO TIFF writer " + originatingProvider.getVersion())); + // Copy metadata to output + int[] copyTags = { + TIFF.TAG_ORIENTATION, + TIFF.TAG_DATE_TIME, + TIFF.TAG_DOCUMENT_NAME, + TIFF.TAG_IMAGE_DESCRIPTION, + TIFF.TAG_MAKE, + TIFF.TAG_MODEL, + TIFF.TAG_PAGE_NAME, + TIFF.TAG_PAGE_NUMBER, + TIFF.TAG_ARTIST, + TIFF.TAG_HOST_COMPUTER, + TIFF.TAG_COPYRIGHT + }; + for (int tagID : copyTags) { + Entry entry = metadata.getIFD().getEntryById(tagID); + if (entry != null) { + entries.put(tagID, entry); + } + } + // Get X/YResolution and ResolutionUnit from metadata if set, otherwise use defaults // TODO: Add logic here OR in metadata merging, to make sure these 3 values are consistent. Entry xRes = metadata.getIFD().getEntryById(TIFF.TAG_X_RESOLUTION);