Return-Path: X-Original-To: apmail-commons-commits-archive@minotaur.apache.org Delivered-To: apmail-commons-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 949A2EA4F for ; Sun, 27 Jan 2013 17:17:11 +0000 (UTC) Received: (qmail 41839 invoked by uid 500); 27 Jan 2013 17:17:11 -0000 Delivered-To: apmail-commons-commits-archive@commons.apache.org Received: (qmail 41790 invoked by uid 500); 27 Jan 2013 17:17:11 -0000 Mailing-List: contact commits-help@commons.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@commons.apache.org Delivered-To: mailing list commits@commons.apache.org Received: (qmail 41751 invoked by uid 99); 27 Jan 2013 17:17:11 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 27 Jan 2013 17:17:11 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 27 Jan 2013 17:17:08 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 6602323888D2; Sun, 27 Jan 2013 17:16:48 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1439118 - /commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/formats/jpeg/exif/MicrosoftTagTest.java Date: Sun, 27 Jan 2013 17:16:48 -0000 To: commits@commons.apache.org From: damjan@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20130127171648.6602323888D2@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: damjan Date: Sun Jan 27 17:16:48 2013 New Revision: 1439118 URL: http://svn.apache.org/viewvc?rev=1439118&view=rev Log: Add a test for (re)writing some Microsoft XP tag constants, since a user complained that don't work. Added: commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/formats/jpeg/exif/MicrosoftTagTest.java (with props) Added: commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/formats/jpeg/exif/MicrosoftTagTest.java URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/formats/jpeg/exif/MicrosoftTagTest.java?rev=1439118&view=auto ============================================================================== --- commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/formats/jpeg/exif/MicrosoftTagTest.java (added) +++ commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/formats/jpeg/exif/MicrosoftTagTest.java Sun Jan 27 17:16:48 2013 @@ -0,0 +1,72 @@ +package org.apache.commons.imaging.formats.jpeg.exif; + +import java.awt.image.BufferedImage; +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.util.Map; +import java.util.TreeMap; + +import org.apache.commons.imaging.ImageFormat; +import org.apache.commons.imaging.Imaging; +import org.apache.commons.imaging.common.IImageMetadata; +import org.apache.commons.imaging.formats.jpeg.JpegImageMetadata; +import org.apache.commons.imaging.formats.tiff.TiffImageMetadata; +import org.apache.commons.imaging.formats.tiff.constants.MicrosoftTagConstants; +import org.apache.commons.imaging.formats.tiff.constants.TiffConstants; +import org.apache.commons.imaging.formats.tiff.write.TiffOutputDirectory; +import org.apache.commons.imaging.formats.tiff.write.TiffOutputSet; + +public class MicrosoftTagTest extends ExifBaseTest { + private static final String author = "author"; + private static final String comment = "comment"; + private static final String subject = "subject"; + private static final String title = "title"; + + public void testWrite() throws Exception { + BufferedImage image = new BufferedImage(10, 10, BufferedImage.TYPE_INT_ARGB); + TiffOutputSet exifSet = new TiffOutputSet(); + TiffOutputDirectory exif = exifSet.getOrCreateExifDirectory(); + exif.add(MicrosoftTagConstants.EXIF_TAG_XPAUTHOR, author); + exif.add(MicrosoftTagConstants.EXIF_TAG_XPCOMMENT, comment); + exif.add(MicrosoftTagConstants.EXIF_TAG_XPSUBJECT, subject); + exif.add(MicrosoftTagConstants.EXIF_TAG_XPTITLE, title); + Map params = new TreeMap(); + params.put(TiffConstants.PARAM_KEY_EXIF, exifSet); + byte[] bytes = Imaging.writeImageToBytes(image, ImageFormat.IMAGE_FORMAT_TIFF, params); + checkFields(bytes); + } + + private TiffImageMetadata toTiffMetadata(IImageMetadata metadata) throws Exception { + if (metadata instanceof JpegImageMetadata) { + return ((JpegImageMetadata)metadata).getExif(); + } else if (metadata instanceof TiffImageMetadata) { + return ((TiffImageMetadata)metadata); + } else { + throw new Exception("bad metadata format"); + } + } + + public void testRewrite() throws Exception { + File imageWithExif = getImageWithExifData(); + TiffImageMetadata metadata = toTiffMetadata(Imaging.getMetadata(imageWithExif)); + ExifRewriter rewriter = new ExifRewriter(); + TiffOutputSet outputSet = metadata.getOutputSet(); + TiffOutputDirectory exif = outputSet.getOrCreateExifDirectory(); + exif.add(MicrosoftTagConstants.EXIF_TAG_XPAUTHOR, author); + exif.add(MicrosoftTagConstants.EXIF_TAG_XPCOMMENT, comment); + exif.add(MicrosoftTagConstants.EXIF_TAG_XPSUBJECT, subject); + exif.add(MicrosoftTagConstants.EXIF_TAG_XPTITLE, title); + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + rewriter.updateExifMetadataLossy(imageWithExif, baos, outputSet); + checkFields(baos.toByteArray()); + } + + private void checkFields(byte[] file) throws Exception { + TiffImageMetadata metadata = toTiffMetadata(Imaging.getMetadata(file)); + assertEquals(author, metadata.getFieldValue(MicrosoftTagConstants.EXIF_TAG_XPAUTHOR)); + assertEquals(comment, metadata.getFieldValue(MicrosoftTagConstants.EXIF_TAG_XPCOMMENT)); + assertEquals(subject, metadata.getFieldValue(MicrosoftTagConstants.EXIF_TAG_XPSUBJECT)); + assertEquals(title, metadata.getFieldValue(MicrosoftTagConstants.EXIF_TAG_XPTITLE)); + + } +} Propchange: commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/formats/jpeg/exif/MicrosoftTagTest.java ------------------------------------------------------------------------------ svn:eol-style = native