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 2024/03/20 09:48:40 UTC

svn commit: r1916440 - /pdfbox/branches/3.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/graphics/color/PDDeviceCMYKTest.java

Author: tilman
Date: Wed Mar 20 09:48:40 2024
New Revision: 1916440

URL: http://svn.apache.org/viewvc?rev=1916440&view=rev
Log:
PDFBOX-5787: add test to catch jdk21 mac homebrew bug during build

Modified:
    pdfbox/branches/3.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/graphics/color/PDDeviceCMYKTest.java

Modified: pdfbox/branches/3.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/graphics/color/PDDeviceCMYKTest.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/3.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/graphics/color/PDDeviceCMYKTest.java?rev=1916440&r1=1916439&r2=1916440&view=diff
==============================================================================
--- pdfbox/branches/3.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/graphics/color/PDDeviceCMYKTest.java (original)
+++ pdfbox/branches/3.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/graphics/color/PDDeviceCMYKTest.java Wed Mar 20 09:48:40 2024
@@ -17,7 +17,20 @@
 
 package org.apache.pdfbox.pdmodel.graphics.color;
 
+import java.awt.Point;
+import java.awt.Transparency;
+import java.awt.color.ICC_ColorSpace;
+import java.awt.color.ICC_Profile;
+import java.awt.image.BufferedImage;
+import java.awt.image.ColorConvertOp;
+import java.awt.image.ColorModel;
+import java.awt.image.ComponentColorModel;
+import java.awt.image.DataBuffer;
+import java.awt.image.Raster;
+import java.awt.image.WritableRaster;
+import java.io.BufferedInputStream;
 import java.io.IOException;
+import java.io.InputStream;
 import org.junit.jupiter.api.Test;
 
 /**
@@ -39,4 +52,34 @@ class PDDeviceCMYKTest
         {
         }
     }
+
+    /**
+     * PDFBOX-5787: test for problems on Mac with jdk21 homebrew. If this test fails, then use
+     * another jdk.
+     * 
+     * @throws IOException
+     */
+    @Test
+    void testPDFBox5787() throws IOException
+    {
+        ColorConvertOp colorConvertOp = new ColorConvertOp(null);
+        String resourceName = "/org/apache/pdfbox/resources/icc/CGATS001Compat-v2-micro.icc";
+        ICC_Profile iccProfile;
+        try (InputStream is = new BufferedInputStream(PDDeviceCMYK.class.getResourceAsStream(resourceName)))
+        {
+            iccProfile = ICC_Profile.getInstance(is);
+        }
+        ICC_ColorSpace icc_ColorSpace = new ICC_ColorSpace(iccProfile);
+
+        WritableRaster raster = Raster.createInterleavedRaster(DataBuffer.TYPE_BYTE, 1, 1,
+                4, new Point(0, 0));
+
+        ColorModel colorModel = new ComponentColorModel(icc_ColorSpace,
+                false, false, Transparency.OPAQUE, raster.getDataBuffer().getDataType());
+
+        BufferedImage src = new BufferedImage(colorModel, raster, false, null);
+        BufferedImage dest = new BufferedImage(raster.getWidth(), raster.getHeight(),
+                BufferedImage.TYPE_INT_RGB);
+        colorConvertOp.filter(src, dest);
+    }
 }