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 2020/08/21 17:03:38 UTC

svn commit: r1881062 - /pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/graphics/image/PNGConverterTest.java

Author: tilman
Date: Fri Aug 21 17:03:38 2020
New Revision: 1881062

URL: http://svn.apache.org/viewvc?rev=1881062&view=rev
Log:
PDFBOX-4847: use jdk7 syntax

Modified:
    pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/graphics/image/PNGConverterTest.java

Modified: pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/graphics/image/PNGConverterTest.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/graphics/image/PNGConverterTest.java?rev=1881062&r1=1881061&r2=1881062&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/graphics/image/PNGConverterTest.java (original)
+++ pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/graphics/image/PNGConverterTest.java Fri Aug 21 17:03:38 2020
@@ -170,48 +170,49 @@ public class PNGConverterTest
 
     private void checkImageConvert(String name) throws IOException
     {
-        PDDocument doc = new PDDocument();
-        byte[] imageBytes = IOUtils.toByteArray(PNGConverterTest.class.getResourceAsStream(name));
-        PDImageXObject pdImageXObject = PNGConverter.convertPNGImage(doc, imageBytes);
-        assertNotNull(pdImageXObject);
-
-        ICC_Profile imageProfile = null;
-        if (pdImageXObject.getColorSpace() instanceof PDICCBased)
+        try (PDDocument doc = new PDDocument())
         {
-            // Make sure that ICC profile is a valid one
-            PDICCBased iccColorSpace = (PDICCBased) pdImageXObject.getColorSpace();
-            imageProfile = ICC_Profile.getInstance(iccColorSpace.getPDStream().toByteArray());
+            byte[] imageBytes = IOUtils.toByteArray(PNGConverterTest.class.getResourceAsStream(name));
+            PDImageXObject pdImageXObject = PNGConverter.convertPNGImage(doc, imageBytes);
+            assertNotNull(pdImageXObject);
+            
+            ICC_Profile imageProfile = null;
+            if (pdImageXObject.getColorSpace() instanceof PDICCBased)
+            {
+                // Make sure that ICC profile is a valid one
+                PDICCBased iccColorSpace = (PDICCBased) pdImageXObject.getColorSpace();
+                imageProfile = ICC_Profile.getInstance(iccColorSpace.getPDStream().toByteArray());
+            }
+            PDPage page = new PDPage();
+            doc.addPage(page);
+            try (PDPageContentStream contentStream = new PDPageContentStream(doc, page))
+            {
+                contentStream.setNonStrokingColor(Color.PINK);
+                contentStream.addRect(0, 0, page.getCropBox().getWidth(), page.getCropBox().getHeight());
+                contentStream.fill();
+                
+                contentStream.drawImage(pdImageXObject, 0, 0, pdImageXObject.getWidth(),
+                        pdImageXObject.getHeight());
+            }
+            doc.save(new File(parentDir, name + ".pdf"));
+            BufferedImage image = pdImageXObject.getImage();
+            
+            BufferedImage expectedImage = ImageIO.read(new ByteArrayInputStream(imageBytes));
+            if (imageProfile != null && expectedImage.getColorModel().getColorSpace().isCS_sRGB())
+            {
+                // The image has an embedded ICC Profile, but the default java PNG
+                // reader does not correctly read that.
+                expectedImage = getImageWithProfileData(expectedImage, imageProfile);
+            }
+            
+            checkIdent(expectedImage, image);
         }
-        PDPage page = new PDPage();
-        doc.addPage(page);
-        PDPageContentStream contentStream = new PDPageContentStream(doc, page);
-        contentStream.setNonStrokingColor(Color.PINK);
-        contentStream.addRect(0, 0, page.getCropBox().getWidth(), page.getCropBox().getHeight());
-        contentStream.fill();
-
-        contentStream.drawImage(pdImageXObject, 0, 0, pdImageXObject.getWidth(),
-                pdImageXObject.getHeight());
-        contentStream.close();
-        doc.save(new File(parentDir, name + ".pdf"));
-        BufferedImage image = pdImageXObject.getImage();
-
-        BufferedImage expectedImage = ImageIO.read(new ByteArrayInputStream(imageBytes));
-        if (imageProfile != null && expectedImage.getColorModel().getColorSpace().isCS_sRGB())
-        {
-            // The image has an embedded ICC Profile, but the default java PNG
-            // reader does not correctly read that.
-            expectedImage = getImageWithProfileData(expectedImage, imageProfile);
-        }
-
-        checkIdent(expectedImage, image);
-
-        doc.close();
     }
 
     public static BufferedImage getImageWithProfileData(BufferedImage sourceImage,
              ICC_Profile realProfile)
     {
-        Hashtable<String, Object> properties = new Hashtable<String, Object>();
+        Hashtable<String, Object> properties = new Hashtable<>();
         String[] propertyNames = sourceImage.getPropertyNames();
         if (propertyNames != null)
         {