]> source.dussan.org Git - xmlgraphics-fop.git/commitdiff
Moved static method lightenColor() from PrintRenderer to ColorUtil. Thats one less...
authorAdrian Cumiskey <acumiskey@apache.org>
Thu, 14 Aug 2008 13:25:54 +0000 (13:25 +0000)
committerAdrian Cumiskey <acumiskey@apache.org>
Thu, 14 Aug 2008 13:25:54 +0000 (13:25 +0000)
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@685885 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/fop/render/PrintRenderer.java
src/java/org/apache/fop/render/afp/AFPRenderer.java
src/java/org/apache/fop/render/java2d/Java2DRenderer.java
src/java/org/apache/fop/render/pdf/PDFRenderer.java
src/java/org/apache/fop/render/ps/PSRenderer.java
src/java/org/apache/fop/util/ColorUtil.java

index 44b0a211d7c58f10943fa8dc916a11e9449962df..56504ff53855c3cf1edb9eb0c32e958e95e48929 100644 (file)
@@ -20,7 +20,6 @@
 package org.apache.fop.render;
 
 // FOP
-import java.awt.Color;
 import java.awt.geom.Rectangle2D;
 import java.util.List;
 import java.util.Map;
@@ -112,29 +111,6 @@ public abstract class PrintRenderer extends AbstractRenderer {
         return fontInfo.getFontInstance(triplet, size);
     }
 
-    /**
-     * Lightens up a color for groove, ridge, inset and outset border effects.
-     * @param col the color to lighten up
-     * @param factor factor by which to lighten up (negative values darken the color)
-     * @return the modified color
-     */
-    public static Color lightenColor(Color col, float factor) {
-        // TODO: This function converts the color into the sRGB namespace.
-        // This should be avoided if possible.
-        float[] cols = new float[4];
-        cols = col.getRGBComponents(cols);
-        if (factor > 0) {
-            cols[0] += (1.0 - cols[0]) * factor;
-            cols[1] += (1.0 - cols[1]) * factor;
-            cols[2] += (1.0 - cols[2]) * factor;
-        } else {
-            cols[0] -= cols[0] * -factor;
-            cols[1] -= cols[1] * -factor;
-            cols[2] -= cols[2] * -factor;
-        }
-        return new Color(cols[0], cols[1], cols[2], cols[3]);
-    }
-
     /**
      * Creates a RendererContext for an image.
      * @param x the x coordinate (in millipoints)
index b77ce9396cfb52ab98969911e11bc1658694aaaa..d5129f16762ca980eb1c8c14009a6dbc1a4c831e 100644 (file)
@@ -88,6 +88,7 @@ import org.apache.fop.render.afp.modca.AFPConstants;
 import org.apache.fop.render.afp.modca.AFPDataStream;
 import org.apache.fop.render.afp.modca.ImageObject;
 import org.apache.fop.render.afp.modca.PageObject;
+import org.apache.fop.util.ColorUtil;
 
 /**
  * This is an implementation of a FOP Renderer that renders areas to AFP.
@@ -850,8 +851,8 @@ public class AFPRenderer extends AbstractPathOrientedRenderer {
             {
                 float colFactor = (style == EN_GROOVE ? 0.4f : -0.4f);
                 if (horz) {
-                    Color uppercol = lightenColor(col, -colFactor);
-                    Color lowercol = lightenColor(col, colFactor);
+                    Color uppercol = ColorUtil.lightenColor(col, -colFactor);
+                    Color lowercol = ColorUtil.lightenColor(col, colFactor);
                     float h3 = h / 3;
                     float ym1 = y1;
                     afpDataStream.createLine(
@@ -879,8 +880,8 @@ public class AFPRenderer extends AbstractPathOrientedRenderer {
                         lowercol
                     );
                 } else {
-                    Color leftcol = lightenColor(col, -colFactor);
-                    Color rightcol = lightenColor(col, colFactor);
+                    Color leftcol = ColorUtil.lightenColor(col, -colFactor);
+                    Color rightcol = ColorUtil.lightenColor(col, colFactor);
                     float w3 = w / 3;
                     float xm1 = x1 + (w3 / 2);
                     afpDataStream.createLine(
index 1dd353b3b255f1a2654dd7efeddeb6d2c8bb8074..e3f79dea26cb14f21860bfa5fffea5cd283c9869 100644 (file)
@@ -77,6 +77,7 @@ import org.apache.fop.render.Graphics2DAdapter;
 import org.apache.fop.render.RendererContext;
 import org.apache.fop.render.pdf.CTMHelper;
 import org.apache.fop.util.CharUtilities;
+import org.apache.fop.util.ColorUtil;
 
 /**
  * The <code>Java2DRenderer</code> class provides the abstract technical
@@ -652,8 +653,8 @@ public abstract class Java2DRenderer extends AbstractPathOrientedRenderer implem
             case Constants.EN_RIDGE:
                 float colFactor = (style == EN_GROOVE ? 0.4f : -0.4f);
                 if (horz) {
-                    Color uppercol = lightenColor(col, -colFactor);
-                    Color lowercol = lightenColor(col, colFactor);
+                    Color uppercol = ColorUtil.lightenColor(col, -colFactor);
+                    Color lowercol = ColorUtil.lightenColor(col, colFactor);
                     float h3 = h / 3;
                     float ym1 = y1 + (h3 / 2);
                     g2d.setStroke(new BasicStroke(h3));
@@ -664,8 +665,8 @@ public abstract class Java2DRenderer extends AbstractPathOrientedRenderer implem
                     g2d.setColor(lowercol);
                     g2d.draw(new Line2D.Float(x1, ym1 + h3 + h3, x2, ym1 + h3 + h3));
                 } else {
-                    Color leftcol = lightenColor(col, -colFactor);
-                    Color rightcol = lightenColor(col, colFactor);
+                    Color leftcol = ColorUtil.lightenColor(col, -colFactor);
+                    Color rightcol = ColorUtil.lightenColor(col, colFactor);
                     float w3 = w / 3;
                     float xm1 = x1 + (w3 / 2);
                     g2d.setStroke(new BasicStroke(w3));
@@ -681,13 +682,13 @@ public abstract class Java2DRenderer extends AbstractPathOrientedRenderer implem
             case Constants.EN_OUTSET:
                 colFactor = (style == EN_OUTSET ? 0.4f : -0.4f);
                 if (horz) {
-                    col = lightenColor(col, (startOrBefore ? 1 : -1) * colFactor);
+                    col = ColorUtil.lightenColor(col, (startOrBefore ? 1 : -1) * colFactor);
                     g2d.setStroke(new BasicStroke(h));
                     float ym1 = y1 + (h / 2);
                     g2d.setColor(col);
                     g2d.draw(new Line2D.Float(x1, ym1, x2, ym1));
                 } else {
-                    col = lightenColor(col, (startOrBefore ? 1 : -1) * colFactor);
+                    col = ColorUtil.lightenColor(col, (startOrBefore ? 1 : -1) * colFactor);
                     float xm1 = x1 + (w / 2);
                     g2d.setStroke(new BasicStroke(w));
                     g2d.setColor(col);
@@ -859,7 +860,7 @@ public abstract class Java2DRenderer extends AbstractPathOrientedRenderer implem
         case EN_RIDGE:
             float half = area.getRuleThickness() / 2000f;
 
-            state.updateColor(lightenColor(col, 0.6f));
+            state.updateColor(ColorUtil.lightenColor(col, 0.6f));
             moveTo(startx, starty);
             lineTo(endx, starty);
             lineTo(endx, starty + 2 * half);
index e3aef5e7f498af7d98ce55dccfcb64f38ef5db6d..8c016198b46157968eb578d6b8435cf13cca64d4 100644 (file)
@@ -116,6 +116,7 @@ import org.apache.fop.render.Graphics2DAdapter;
 import org.apache.fop.render.RendererContext;
 import org.apache.fop.util.CharUtilities;
 import org.apache.fop.util.ColorProfileUtil;
+import org.apache.fop.util.ColorUtil;
 
 /**
  * Renderer that renders areas to PDF.
@@ -938,8 +939,8 @@ public class PDFRenderer extends AbstractPathOrientedRenderer {
                 float colFactor = (style == EN_GROOVE ? 0.4f : -0.4f);
                 currentStream.add("[] 0 d ");
                 if (horz) {
-                    Color uppercol = lightenColor(col, -colFactor);
-                    Color lowercol = lightenColor(col, colFactor);
+                    Color uppercol = ColorUtil.lightenColor(col, -colFactor);
+                    Color lowercol = ColorUtil.lightenColor(col, colFactor);
                     float h3 = h / 3;
                     currentStream.add(format(h3) + " w\n");
                     float ym1 = y1 + (h3 / 2);
@@ -953,8 +954,8 @@ public class PDFRenderer extends AbstractPathOrientedRenderer {
                     currentStream.add(format(x1) + " " + format(ym1 + h3 + h3) + " m "
                                         + format(x2) + " " + format(ym1 + h3 + h3) + " l S\n");
                 } else {
-                    Color leftcol = lightenColor(col, -colFactor);
-                    Color rightcol = lightenColor(col, colFactor);
+                    Color leftcol = ColorUtil.lightenColor(col, -colFactor);
+                    Color rightcol = ColorUtil.lightenColor(col, colFactor);
                     float w3 = w / 3;
                     currentStream.add(format(w3) + " w\n");
                     float xm1 = x1 + (w3 / 2);
@@ -977,14 +978,14 @@ public class PDFRenderer extends AbstractPathOrientedRenderer {
                 currentStream.add("[] 0 d ");
                 Color c = col;
                 if (horz) {
-                    c = lightenColor(c, (startOrBefore ? 1 : -1) * colFactor);
+                    c = ColorUtil.lightenColor(c, (startOrBefore ? 1 : -1) * colFactor);
                     currentStream.add(format(h) + " w\n");
                     float ym1 = y1 + (h / 2);
                     setColor(c, false, null);
                     currentStream.add(format(x1) + " " + format(ym1) + " m "
                             + format(x2) + " " + format(ym1) + " l S\n");
                 } else {
-                    c = lightenColor(c, (startOrBefore ? 1 : -1) * colFactor);
+                    c = ColorUtil.lightenColor(c, (startOrBefore ? 1 : -1) * colFactor);
                     currentStream.add(format(w) + " w\n");
                     float xm1 = x1 + (w / 2);
                     setColor(c, false, null);
@@ -1771,7 +1772,7 @@ public class PDFRenderer extends AbstractPathOrientedRenderer {
             case EN_RIDGE:
                 float half = area.getRuleThickness() / 2000f;
 
-                setColor(lightenColor(col, 0.6f), true, null);
+                setColor(ColorUtil.lightenColor(col, 0.6f), true, null);
                 currentStream.add(format(startx) + " " + format(starty) + " m\n");
                 currentStream.add(format(endx) + " " + format(starty) + " l\n");
                 currentStream.add(format(endx) + " " + format(starty + 2 * half) + " l\n");
index 9f8cdc771f9c798a237e0e28526afa00d0e01790..4785ea14fea9c3cf0c26732da305c3f6d8818d09 100644 (file)
@@ -106,6 +106,7 @@ import org.apache.fop.render.ps.extensions.PSExtensionAttachment;
 import org.apache.fop.render.ps.extensions.PSSetPageDevice;
 import org.apache.fop.render.ps.extensions.PSSetupCode;
 import org.apache.fop.util.CharUtilities;
+import org.apache.fop.util.ColorUtil;
 
 /**
  * Renderer that renders to PostScript.
@@ -839,8 +840,8 @@ public class PSRenderer extends AbstractPathOrientedRenderer
                     float colFactor = (style == EN_GROOVE ? 0.4f : -0.4f);
                     gen.useDash(null);
                     if (horz) {
-                        Color uppercol = lightenColor(col, -colFactor);
-                        Color lowercol = lightenColor(col, colFactor);
+                        Color uppercol = ColorUtil.lightenColor(col, -colFactor);
+                        Color lowercol = ColorUtil.lightenColor(col, colFactor);
                         float h3 = h / 3;
                         gen.useLineWidth(h3);
                         float ym1 = y1 + (h3 / 2);
@@ -851,8 +852,8 @@ public class PSRenderer extends AbstractPathOrientedRenderer
                         gen.useColor(lowercol);
                         drawLine(x1, ym1 + h3 + h3, x2, ym1 + h3 + h3);
                     } else {
-                        Color leftcol = lightenColor(col, -colFactor);
-                        Color rightcol = lightenColor(col, colFactor);
+                        Color leftcol = ColorUtil.lightenColor(col, -colFactor);
+                        Color rightcol = ColorUtil.lightenColor(col, colFactor);
                         float w3 = w / 3;
                         gen.useLineWidth(w3);
                         float xm1 = x1 + (w3 / 2);
@@ -869,13 +870,13 @@ public class PSRenderer extends AbstractPathOrientedRenderer
                     colFactor = (style == EN_OUTSET ? 0.4f : -0.4f);
                     gen.useDash(null);
                     if (horz) {
-                        Color c = lightenColor(col, (startOrBefore ? 1 : -1) * colFactor);
+                        Color c = ColorUtil.lightenColor(col, (startOrBefore ? 1 : -1) * colFactor);
                         gen.useLineWidth(h);
                         float ym1 = y1 + (h / 2);
                         gen.useColor(c);
                         drawLine(x1, ym1, x2, ym1);
                     } else {
-                        Color c = lightenColor(col, (startOrBefore ? 1 : -1) * colFactor);
+                        Color c = ColorUtil.lightenColor(col, (startOrBefore ? 1 : -1) * colFactor);
                         gen.useLineWidth(w);
                         float xm1 = x1 + (w / 2);
                         gen.useColor(c);
@@ -1570,7 +1571,7 @@ public class PSRenderer extends AbstractPathOrientedRenderer
                 case EN_RIDGE:
                     float half = area.getRuleThickness() / 2000f;
 
-                    gen.useColor(lightenColor(col, 0.6f));
+                    gen.useColor(ColorUtil.lightenColor(col, 0.6f));
                     moveTo(startx, starty);
                     lineTo(endx, starty);
                     lineTo(endx, starty + 2 * half);
index b85b0c017e95e76aa7f7de4d506a7e08940d5563..9534bfba3e391e2f8150de961622bae7336e7eba 100644 (file)
@@ -658,4 +658,27 @@ public final class ColorUtil {
         colorMap.put("transparent", new Color(0, 0, 0, 0));
     }
 
+    /**
+     * Lightens up a color for groove, ridge, inset and outset border effects.
+     * @param col the color to lighten up
+     * @param factor factor by which to lighten up (negative values darken the color)
+     * @return the modified color
+     */
+    public static Color lightenColor(Color col, float factor) {
+        // TODO: This function converts the color into the sRGB namespace.
+        // This should be avoided if possible.
+        float[] cols = new float[4];
+        cols = col.getRGBComponents(cols);
+        if (factor > 0) {
+            cols[0] += (1.0 - cols[0]) * factor;
+            cols[1] += (1.0 - cols[1]) * factor;
+            cols[2] += (1.0 - cols[2]) * factor;
+        } else {
+            cols[0] -= cols[0] * -factor;
+            cols[1] -= cols[1] * -factor;
+            cols[2] -= cols[2] * -factor;
+        }
+        return new Color(cols[0], cols[1], cols[2], cols[3]);
+    }
+
 }