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 2017/08/14 15:58:04 UTC
svn commit: r1805014 - in
/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color:
PDDeviceRGB.java PDICCBased.java
Author: tilman
Date: Mon Aug 14 15:58:04 2017
New Revision: 1805014
URL: http://svn.apache.org/viewvc?rev=1805014&view=rev
Log:
PDFBOX-3897: avoid sRGB self-conversion
Modified:
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDDeviceRGB.java
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDICCBased.java
Modified: pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDDeviceRGB.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDDeviceRGB.java?rev=1805014&r1=1805013&r2=1805014&view=diff
==============================================================================
--- pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDDeviceRGB.java (original)
+++ pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDDeviceRGB.java Mon Aug 14 15:58:04 2017
@@ -100,8 +100,7 @@ public final class PDDeviceRGB extends P
@Override
public float[] toRGB(float[] value)
{
- init();
- return awtColorSpace.toRGB(value);
+ return value;
}
@Override
Modified: pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDICCBased.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDICCBased.java?rev=1805014&r1=1805013&r2=1805014&view=diff
==============================================================================
--- pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDICCBased.java (original)
+++ pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDICCBased.java Mon Aug 14 15:58:04 2017
@@ -63,6 +63,7 @@ public final class PDICCBased extends PD
private PDColorSpace alternateColorSpace;
private ICC_ColorSpace awtColorSpace;
private PDColor initialColor;
+ private boolean isRGB = false;
/**
* Creates a new ICC color space with an empty stream.
@@ -131,6 +132,7 @@ public final class PDICCBased extends PD
profile = ICC_Profile.getInstance(input);
if (is_sRGB(profile))
{
+ isRGB = true;
awtColorSpace = (ICC_ColorSpace) ColorSpace.getInstance(ColorSpace.CS_sRGB);
iccProfile = awtColorSpace.getProfile();
}
@@ -166,6 +168,10 @@ public final class PDICCBased extends PD
// fall back to alternateColorSpace color space
awtColorSpace = null;
alternateColorSpace = getAlternateColorSpace();
+ if (alternateColorSpace.equals(PDDeviceRGB.INSTANCE))
+ {
+ isRGB = true;
+ }
LOG.error("Can't read embedded ICC profile (" + e.getLocalizedMessage() + "), using alternate color space: " + alternateColorSpace.getName());
initialColor = alternateColorSpace.getInitialColor();
}
@@ -194,6 +200,10 @@ public final class PDICCBased extends PD
@Override
public float[] toRGB(float[] value) throws IOException
{
+ if (isRGB)
+ {
+ return value;
+ }
if (awtColorSpace != null)
{
// WARNING: toRGB is very slow when used with LUT-based ICC profiles