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 2014/03/13 23:14:45 UTC

svn commit: r1577341 - /pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/util/TestImageIOUtils.java

Author: tilman
Date: Thu Mar 13 22:14:45 2014
New Revision: 1577341

URL: http://svn.apache.org/r1577341
Log:
PDFBOX-1975: check color count; remove a statement that disabled code

Modified:
    pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/util/TestImageIOUtils.java

Modified: pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/util/TestImageIOUtils.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/util/TestImageIOUtils.java?rev=1577341&r1=1577340&r2=1577341&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/util/TestImageIOUtils.java (original)
+++ pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/util/TestImageIOUtils.java Thu Mar 13 22:14:45 2014
@@ -24,7 +24,9 @@ import java.io.FileInputStream;
 import java.io.FileNotFoundException;
 import java.io.FilenameFilter;
 import java.io.IOException;
+import java.util.HashSet;
 import java.util.Iterator;
+import java.util.Set;
 import javax.imageio.ImageIO;
 import javax.imageio.ImageReader;
 import javax.imageio.metadata.IIOMetadata;
@@ -121,6 +123,7 @@ public class TestImageIOUtils extends Te
     {
         BufferedImage newImage = ImageIO.read(new File(filename));
         assertNotNull("File '" + filename + "' could not be read", newImage);
+        checkNotBlank(filename, newImage);
         checkBufferedImageSize(filename, image, newImage);
         for (int x = 0; x < image.getWidth(); ++x)
         {
@@ -145,6 +148,7 @@ public class TestImageIOUtils extends Te
     {
         BufferedImage newImage = ImageIO.read(new File(filename));
         assertNotNull("File '" + filename + "' could not be read", newImage);
+        checkNotBlank(filename, newImage);
         checkBufferedImageSize(filename, image, newImage);
     }
 
@@ -154,6 +158,22 @@ public class TestImageIOUtils extends Te
         assertEquals("File '" + filename + "' has different height after read", image.getHeight(), newImage.getHeight());
         assertEquals("File '" + filename + "' has different width after read", image.getWidth(), newImage.getWidth());
     }
+    
+    private void checkNotBlank (String filename, BufferedImage newImage)
+    {
+        // http://stackoverflow.com/a/5253698/535646
+        Set<Integer> colors = new HashSet<Integer>();
+        int w = newImage.getWidth();
+        int h = newImage.getHeight();
+        for (int x = 0; x < w; x++)
+        {
+            for (int y = 0; y < h; y++)
+            {
+                colors.add(newImage.getRGB(x, y));
+            }
+        }        
+        assertFalse("File '" + filename + "' has less than two colors", colors.size() < 2);
+    }
 
     private void writeImage(PDDocument document, String imageFormat, String outputPrefix,
                             ImageType imageType, float dpi) throws IOException
@@ -163,7 +183,6 @@ public class TestImageIOUtils extends Te
         String fileName = outputPrefix + 1;
         LOG.info("Writing: " + fileName + "." + imageFormat);
         ImageIOUtil.writeImage(image, imageFormat, fileName, Math.round(dpi));
-        if (true) return;
         if ("jpg".equals(imageFormat) || "gif".equals(imageFormat))
         {
             // jpeg is lossy, gif has 256 colors, 
@@ -175,7 +194,7 @@ public class TestImageIOUtils extends Te
             checkImageFileSizeAndContent(fileName + "." + imageFormat, image);
         }
     }
-
+    
     /**
      * Test to validate image rendering of file set.
      * @throws Exception when there is an exception