diff options
author | Jeremias Maerki <jeremias@apache.org> | 2010-06-25 12:17:58 +0000 |
---|---|---|
committer | Jeremias Maerki <jeremias@apache.org> | 2010-06-25 12:17:58 +0000 |
commit | 9dc0ea2f7ad8fd77481901e269b6ac2bbb3d0308 (patch) | |
tree | 4a9d835b8edd05b526b51b7939e4ea1a8e3b5e80 /test/java/org/apache | |
parent | 1dc63dc609d2bcb8c865a26595d212f9eb858c14 (diff) | |
download | xmlgraphics-fop-9dc0ea2f7ad8fd77481901e269b6ac2bbb3d0308.tar.gz xmlgraphics-fop-9dc0ea2f7ad8fd77481901e269b6ac2bbb3d0308.zip |
Bugzilla #49403:
Initial support for PDF Separation color spaces (aka spot colors). This is still unfinished but produces valid PDF with Separation colors in simple cases.
Based on work by: Patrick Jaromin <Patrick.at.Jaromin.com>
Note: PDFColor is broken right now, as I'm planning to phase that class out. Squeezing separation colors and what else comes later into that class isn't such a good idea IMO. Instead, PDFColorHandler tries to do all that in a better way based on the new color support classes from XGC.
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/branches/Temp_Color@957913 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'test/java/org/apache')
-rw-r--r-- | test/java/org/apache/fop/traits/BorderPropsTestCase.java | 8 | ||||
-rw-r--r-- | test/java/org/apache/fop/util/ColorUtilTestCase.java | 52 |
2 files changed, 35 insertions, 25 deletions
diff --git a/test/java/org/apache/fop/traits/BorderPropsTestCase.java b/test/java/org/apache/fop/traits/BorderPropsTestCase.java index 3332d11f2..1ac1a117f 100644 --- a/test/java/org/apache/fop/traits/BorderPropsTestCase.java +++ b/test/java/org/apache/fop/traits/BorderPropsTestCase.java @@ -23,8 +23,7 @@ import java.awt.Color; import junit.framework.TestCase; -import org.apache.xmlgraphics.java2d.color.CMYKColorSpace; -import org.apache.xmlgraphics.java2d.color.ColorExt; +import org.apache.xmlgraphics.java2d.color.DeviceCMYKColorSpace; import org.apache.fop.fo.Constants; import org.apache.fop.util.ColorUtil; @@ -50,10 +49,7 @@ public class BorderPropsTestCase extends TestCase { assertEquals(b1, b2); float[] cmyk = new float[] {1.0f, 1.0f, 0.5f, 1.0f}; - CMYKColorSpace cmykCs = CMYKColorSpace.getInstance(); - float[] rgb = cmykCs.toRGB(cmyk); - col = ColorExt.createFromFoRgbIcc(rgb[0], rgb[1], rgb[2], - "#CMYK", null, cmykCs, cmyk); + col = DeviceCMYKColorSpace.createColorExt(cmyk); b1 = new BorderProps(Constants.EN_INSET, 9999, col, BorderProps.SEPARATE); ser = b1.toString(); diff --git a/test/java/org/apache/fop/util/ColorUtilTestCase.java b/test/java/org/apache/fop/util/ColorUtilTestCase.java index 83163c888..82fe841fc 100644 --- a/test/java/org/apache/fop/util/ColorUtilTestCase.java +++ b/test/java/org/apache/fop/util/ColorUtilTestCase.java @@ -21,11 +21,12 @@ package org.apache.fop.util; import java.awt.Color; import java.awt.color.ColorSpace; +import java.net.URI; import junit.framework.TestCase; -import org.apache.xmlgraphics.java2d.color.CMYKColorSpace; import org.apache.xmlgraphics.java2d.color.ColorExt; +import org.apache.xmlgraphics.java2d.color.ColorSpaces; import org.apache.fop.apps.FOUserAgent; import org.apache.fop.apps.FopFactory; @@ -110,8 +111,9 @@ public class ColorUtilTestCase extends TestCase { */ public void testRGBICC() throws Exception { FopFactory fopFactory = FopFactory.newInstance(); - ColorSpace cs = fopFactory.getColorSpace(null, - "src/java/org/apache/fop/pdf/sRGB Color Space Profile.icm"); + URI sRGBLoc = new URI( + "file:src/java/org/apache/fop/pdf/sRGB%20Color%20Space%20Profile.icm"); + ColorSpace cs = fopFactory.getColorSpace(null, sRGBLoc.toASCIIString()); assertNotNull(cs); @@ -120,7 +122,7 @@ public class ColorUtilTestCase extends TestCase { //fop-rgb-icc() is used instead of rgb-icc() inside FOP! String colSpec = "fop-rgb-icc(1.0,0.0,0.0,sRGBAlt," - + "\"src/java/org/apache/fop/pdf/sRGB Color Space Profile.icm\",1.0,0.0,0.0)"; + + "\"" + sRGBLoc.toASCIIString() + "\",1.0,0.0,0.0)"; colActual = (ColorExt)ColorUtil.parseColorString(ua, colSpec); //assertEquals(255, colActual.getRed()); //253 is returned //assertEquals(24, colActual.getGreen()); //24 is returned @@ -129,13 +131,21 @@ public class ColorUtilTestCase extends TestCase { //RGB fallback in any renderer. //TODO Anyone know what's going on here? assertEquals(0, colActual.getBlue()); - assertEquals(cs, colActual.getColorSpace()); + assertEquals(ColorSpace.getInstance(ColorSpace.CS_sRGB), colActual.getColorSpace()); float[] comps = colActual.getColorComponents(null); assertEquals(3, comps.length); assertEquals(1f, comps[0], 0); assertEquals(0f, comps[1], 0); assertEquals(0f, comps[2], 0); + Color alt = colActual.getAlternateColors()[0]; + assertEquals(cs, alt.getColorSpace()); + comps = colActual.getColorComponents(null); + assertEquals(3, comps.length); + assertEquals(1f, comps[0], 0); + assertEquals(0f, comps[1], 0); + assertEquals(0f, comps[2], 0); + assertEquals(colSpec, ColorUtil.colorToString(colActual)); colSpec = "fop-rgb-icc(1.0,0.5,0.0,blah," @@ -157,8 +167,9 @@ public class ColorUtilTestCase extends TestCase { assertEquals(255, colActual.getRed()); assertEquals(255, colActual.getGreen()); assertEquals(0, colActual.getBlue()); - assertEquals(CMYKColorSpace.getInstance(), colActual.getColorSpace()); - float[] comps = colActual.getColorComponents(null); + Color alt = colActual.getAlternateColors()[0]; + assertEquals(ColorSpaces.getDeviceCMYKColorSpace(), alt.getColorSpace()); + float[] comps = alt.getColorComponents(null); assertEquals(4, comps.length); assertEquals(0f, comps[0], 0); assertEquals(0f, comps[1], 0); @@ -169,11 +180,12 @@ public class ColorUtilTestCase extends TestCase { colSpec = "cmyk(0.0274, 0.2196, 0.3216, 0.0)"; colActual = (ColorExt)ColorUtil.parseColorString(null, colSpec); - assertEquals(248, colActual.getRed()); - assertEquals(199, colActual.getGreen()); - assertEquals(172, colActual.getBlue()); - assertEquals(CMYKColorSpace.getInstance(), colActual.getColorSpace()); - comps = colActual.getColorComponents(null); + assertEquals(248, colActual.getRed(), 1); + assertEquals(199, colActual.getGreen(), 1); + assertEquals(172, colActual.getBlue(), 1); + alt = colActual.getAlternateColors()[0]; + assertEquals(ColorSpaces.getDeviceCMYKColorSpace(), alt.getColorSpace()); + comps = alt.getColorComponents(null); assertEquals(0.0274f, comps[0], 0.001); assertEquals(0.2196f, comps[1], 0.001); assertEquals(0.3216f, comps[2], 0.001); @@ -186,8 +198,9 @@ public class ColorUtilTestCase extends TestCase { assertEquals(255, colActual.getRed()); assertEquals(255, colActual.getGreen()); assertEquals(0, colActual.getBlue()); - assertEquals(CMYKColorSpace.getInstance(), colActual.getColorSpace()); - comps = colActual.getColorComponents(null); + alt = colActual.getAlternateColors()[0]; + assertEquals(ColorSpaces.getDeviceCMYKColorSpace(), alt.getColorSpace()); + comps = alt.getColorComponents(null); assertEquals(4, comps.length); assertEquals(0f, comps[0], 0); assertEquals(0f, comps[1], 0); @@ -198,11 +211,12 @@ public class ColorUtilTestCase extends TestCase { colSpec = "fop-rgb-icc(0.5,0.5,0.5,#CMYK,,0.0,0.0,0.0,0.5)"; colActual = (ColorExt)ColorUtil.parseColorString(null, colSpec); - assertEquals(127, colActual.getRed()); - assertEquals(127, colActual.getGreen()); - assertEquals(127, colActual.getBlue()); - assertEquals(CMYKColorSpace.getInstance(), colActual.getColorSpace()); - comps = colActual.getColorComponents(null); + assertEquals(127, colActual.getRed(), 1); + assertEquals(127, colActual.getGreen(), 1); + assertEquals(127, colActual.getBlue(), 1); + alt = colActual.getAlternateColors()[0]; + assertEquals(ColorSpaces.getDeviceCMYKColorSpace(), alt.getColorSpace()); + comps = alt.getColorComponents(null); assertEquals(4, comps.length); assertEquals(0f, comps[0], 0); assertEquals(0f, comps[1], 0); |