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 2021/05/04 16:40:33 UTC

svn commit: r1889496 - in /pdfbox/trunk/examples/src: main/java/org/apache/pdfbox/examples/pdmodel/CreateGradientShadingPDF.java test/java/org/apache/pdfbox/examples/pdmodel/TestCreateGradientShadingPDF.java

Author: tilman
Date: Tue May  4 16:40:33 2021
New Revision: 1889496

URL: http://svn.apache.org/viewvc?rev=1889496&view=rev
Log:
PDFBOX-5186: add test for shading creation

Added:
    pdfbox/trunk/examples/src/test/java/org/apache/pdfbox/examples/pdmodel/TestCreateGradientShadingPDF.java   (with props)
Modified:
    pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/pdmodel/CreateGradientShadingPDF.java

Modified: pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/pdmodel/CreateGradientShadingPDF.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/pdmodel/CreateGradientShadingPDF.java?rev=1889496&r1=1889495&r2=1889496&view=diff
==============================================================================
--- pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/pdmodel/CreateGradientShadingPDF.java (original)
+++ pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/pdmodel/CreateGradientShadingPDF.java Tue May  4 16:40:33 2021
@@ -15,14 +15,11 @@
  */
 package org.apache.pdfbox.examples.pdmodel;
 
-import java.awt.image.BufferedImage;
-import java.io.File;
 import java.io.IOException;
 import java.io.OutputStream;
-import javax.imageio.ImageIO;
+
 import javax.imageio.stream.MemoryCacheImageOutputStream;
 
-import org.apache.pdfbox.Loader;
 import org.apache.pdfbox.cos.COSArray;
 import org.apache.pdfbox.cos.COSDictionary;
 import org.apache.pdfbox.cos.COSInteger;
@@ -39,7 +36,6 @@ import org.apache.pdfbox.pdmodel.graphic
 import org.apache.pdfbox.pdmodel.graphics.shading.PDShadingType2;
 import org.apache.pdfbox.pdmodel.graphics.shading.PDShadingType3;
 import org.apache.pdfbox.pdmodel.graphics.shading.PDShadingType4;
-import org.apache.pdfbox.rendering.PDFRenderer;
 
 /**
  * This example creates a PDF with type 2 (axial) and type 3 (radial) shadings with a type 2
@@ -192,12 +188,6 @@ public class CreateGradientShadingPDF
             
             document.save(file);
         }
-        try (PDDocument document = Loader.loadPDF(new File(file)))
-        {
-            // render the PDF and save it into a PNG file
-            BufferedImage bim = new PDFRenderer(document).renderImageWithDPI(0, 100);
-            ImageIO.write(bim, "png", new File(file + ".png"));
-        }
     }
 
     /**

Added: pdfbox/trunk/examples/src/test/java/org/apache/pdfbox/examples/pdmodel/TestCreateGradientShadingPDF.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/examples/src/test/java/org/apache/pdfbox/examples/pdmodel/TestCreateGradientShadingPDF.java?rev=1889496&view=auto
==============================================================================
--- pdfbox/trunk/examples/src/test/java/org/apache/pdfbox/examples/pdmodel/TestCreateGradientShadingPDF.java (added)
+++ pdfbox/trunk/examples/src/test/java/org/apache/pdfbox/examples/pdmodel/TestCreateGradientShadingPDF.java Tue May  4 16:40:33 2021
@@ -0,0 +1,60 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.pdfbox.examples.pdmodel;
+
+import java.awt.Color;
+import java.awt.image.BufferedImage;
+import java.io.File;
+import java.io.IOException;
+import java.util.HashSet;
+import java.util.Set;
+import org.apache.pdfbox.Loader;
+import org.apache.pdfbox.pdmodel.PDDocument;
+import org.apache.pdfbox.rendering.PDFRenderer;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
+
+/**
+ *
+ * @author Tilman Hausherr
+ */
+class TestCreateGradientShadingPDF
+{
+    @Test
+    void testCreateGradientShading() throws IOException
+    {
+        String filename = "target/GradientShading.pdf";
+
+        CreateGradientShadingPDF creator = new CreateGradientShadingPDF();
+        creator.create(filename);
+
+        try (PDDocument document = Loader.loadPDF(new File(filename)))
+        {
+            Set<Color> set = new HashSet<>();
+            BufferedImage bim = new PDFRenderer(document).renderImage(0);
+            for (int x = 0; x < bim.getWidth(); ++x)
+            {
+                for (int y = 0; y < bim.getHeight(); ++y)
+                {
+                    set.add(new Color(bim.getRGB(x, y)));
+                }
+            }
+            Assertions.assertTrue(set.size() > 10000); // 10258 different colors on windows 10
+        }
+    }
+}

Propchange: pdfbox/trunk/examples/src/test/java/org/apache/pdfbox/examples/pdmodel/TestCreateGradientShadingPDF.java
------------------------------------------------------------------------------
    svn:eol-style = native