You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2015/02/03 08:36:32 UTC

svn commit: r1656635 - in /pdfbox/branches/1.8/pdfbox/src/test: java/org/apache/pdfbox/pdmodel/graphics/xobject/PDPixelMapTest.java resources/org/apache/pdfbox/pdmodel/graphics/xobject/gif.gif

Author: tilman
Date: Tue Feb  3 07:36:31 2015
New Revision: 1656635

URL: http://svn.apache.org/r1656635
Log:
PDFBOX-2654: create test for transparent GIF images

Added:
    pdfbox/branches/1.8/pdfbox/src/test/resources/org/apache/pdfbox/pdmodel/graphics/xobject/gif.gif   (with props)
Modified:
    pdfbox/branches/1.8/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDPixelMapTest.java

Modified: pdfbox/branches/1.8/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDPixelMapTest.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/1.8/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDPixelMapTest.java?rev=1656635&r1=1656634&r2=1656635&view=diff
==============================================================================
--- pdfbox/branches/1.8/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDPixelMapTest.java (original)
+++ pdfbox/branches/1.8/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDPixelMapTest.java Tue Feb  3 07:36:31 2015
@@ -310,6 +310,46 @@ public class PDPixelMapTest extends Test
         assertNull(ximage.getSMaskImage());
         document.close();
     }
+    
+    /**
+     * Tests LosslessFactoryTest#createFromImage(PDDocument document,
+     * BufferedImage image) with transparent GIF
+     *
+     * @throws java.io.IOException
+     */
+    public void testCreateLosslessFromTransparentGIF() throws IOException, COSVisitorException
+    {
+        PDDocument document = new PDDocument();
+        BufferedImage imageFromTransparentColorGif = ImageIO.read(this.getClass().getResourceAsStream("gif.gif"));
+        
+        assertEquals(Transparency.BITMASK, imageFromTransparentColorGif.getColorModel().getTransparency());
+        
+        PDXObjectImage ximage = new PDPixelMap(document, imageFromTransparentColorGif);
+
+        checkIdent(imageFromTransparentColorGif, ximage.getRGBImage());
+        validate(ximage, 8, 343, 287, "png", PDDeviceRGB.NAME);
+
+        validate(ximage.getSMaskImage(), 1, imageFromTransparentColorGif.getWidth(), imageFromTransparentColorGif.getHeight(), "png", PDDeviceGray.NAME);
+        assertEquals(2, colorCount(ximage.getSMaskImage().getRGBImage()));
+
+        // This part isn't really needed because this test doesn't break
+        // if the mask has the wrong colorspace (PDFBOX-2057), but it is still useful
+        // if something goes wrong in the future and we want to have a PDF to open.
+        PDPage page = new PDPage();
+        document.addPage(page);
+        PDPageContentStream contentStream = new PDPageContentStream(document, page, true, false);
+        contentStream.drawXObject(ximage, 150, 300, ximage.getWidth(), ximage.getHeight());
+        contentStream.drawXObject(ximage, 200, 350, ximage.getWidth(), ximage.getHeight());
+
+        contentStream.close();
+        File pdfFile = new File(testResultsDir, "gif.pdf");
+        document.save(pdfFile);
+        document.close();
+        document = PDDocument.loadNonSeq(pdfFile, null);
+        List<PDPage> pdPages = document.getDocumentCatalog().getAllPages();
+        pdPages.get(0).convertToImage();
+        document.close();
+    }
 
     /**
      * Tests INT_ARGB LosslessFactoryTest#createFromImage(PDDocument document,

Added: pdfbox/branches/1.8/pdfbox/src/test/resources/org/apache/pdfbox/pdmodel/graphics/xobject/gif.gif
URL: http://svn.apache.org/viewvc/pdfbox/branches/1.8/pdfbox/src/test/resources/org/apache/pdfbox/pdmodel/graphics/xobject/gif.gif?rev=1656635&view=auto
==============================================================================
Binary file - no diff available.

Propchange: pdfbox/branches/1.8/pdfbox/src/test/resources/org/apache/pdfbox/pdmodel/graphics/xobject/gif.gif
------------------------------------------------------------------------------
    svn:mime-type = image/gif