From 5545a0885448b7f4cda0ab71308f61f12b2fa251 Mon Sep 17 00:00:00 2001 From: Harald Kuhr Date: Fri, 25 Feb 2011 16:26:33 +0100 Subject: [PATCH] Doc fix + minor clean-up --- .../imageio/color/ColorSpaces.java | 25 ++++++++++--------- 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/imageio/imageio-core/src/main/java/com/twelvemonkeys/imageio/color/ColorSpaces.java b/imageio/imageio-core/src/main/java/com/twelvemonkeys/imageio/color/ColorSpaces.java index 9d21053f..64e24729 100644 --- a/imageio/imageio-core/src/main/java/com/twelvemonkeys/imageio/color/ColorSpaces.java +++ b/imageio/imageio-core/src/main/java/com/twelvemonkeys/imageio/color/ColorSpaces.java @@ -59,7 +59,8 @@ import java.util.Properties; * Adobe or other places. *

* Example property file: - *

probably
+ * 
+ * # icc_profiles.properties
  * ADOBE_RGB_1998=/path/to/Adobe RGB 1998.icc
  * GENERIC_CMYK=/path/to/Generic CMYK.icc
  * 
@@ -103,7 +104,7 @@ public final class ColorSpaces { byte[] profileHeader = profile.getData(ICC_Profile.icSigHead); - ICC_ColorSpace cs = getInternalCS(profile, profileHeader); + ICC_ColorSpace cs = getInternalCS(profile.getColorSpaceType(), profileHeader); if (cs != null) { return cs; } @@ -114,39 +115,39 @@ public final class ColorSpaces { profileHeader[ICC_Profile.icHdrRenderingIntent] = 0; // Test again if this is an internal CS - cs = getInternalCS(profile, profileHeader); + cs = getInternalCS(profile.getColorSpaceType(), profileHeader); if (cs != null) { return cs; } - // Fix profile + // Fix profile before lookup/create profile.setData(ICC_Profile.icSigHead, profileHeader); } - return getCachedCS(profile, profileHeader); + return getCachedOrCreateCS(profile, profileHeader); } - private static ICC_ColorSpace getInternalCS(final ICC_Profile profile, final byte[] profileHeader) { - if (profile.getColorSpaceType() == ColorSpace.TYPE_RGB && Arrays.equals(profileHeader, sRGB.header)) { + private static ICC_ColorSpace getInternalCS(final int profileCSType, final byte[] profileHeader) { + if (profileCSType == ColorSpace.TYPE_RGB && Arrays.equals(profileHeader, sRGB.header)) { return (ICC_ColorSpace) ColorSpace.getInstance(ColorSpace.CS_sRGB); } - else if (profile.getColorSpaceType() == ColorSpace.TYPE_GRAY && Arrays.equals(profileHeader, GRAY.header)) { + else if (profileCSType == ColorSpace.TYPE_GRAY && Arrays.equals(profileHeader, GRAY.header)) { return (ICC_ColorSpace) ColorSpace.getInstance(ColorSpace.CS_GRAY); } - else if (profile.getColorSpaceType() == ColorSpace.TYPE_3CLR && Arrays.equals(profileHeader, PYCC.header)) { + else if (profileCSType == ColorSpace.TYPE_3CLR && Arrays.equals(profileHeader, PYCC.header)) { return (ICC_ColorSpace) ColorSpace.getInstance(ColorSpace.CS_PYCC); } - else if (profile.getColorSpaceType() == ColorSpace.TYPE_RGB && Arrays.equals(profileHeader, LINEAR_RGB.header)) { + else if (profileCSType == ColorSpace.TYPE_RGB && Arrays.equals(profileHeader, LINEAR_RGB.header)) { return (ICC_ColorSpace) ColorSpace.getInstance(ColorSpace.CS_LINEAR_RGB); } - else if (profile.getColorSpaceType() == ColorSpace.TYPE_XYZ && Arrays.equals(profileHeader, CIEXYZ.header)) { + else if (profileCSType == ColorSpace.TYPE_XYZ && Arrays.equals(profileHeader, CIEXYZ.header)) { return (ICC_ColorSpace) ColorSpace.getInstance(ColorSpace.CS_CIEXYZ); } return null; } - private static ICC_ColorSpace getCachedCS(final ICC_Profile profile, final byte[] profileHeader) { + private static ICC_ColorSpace getCachedOrCreateCS(final ICC_Profile profile, final byte[] profileHeader) { Key key = new Key(profileHeader); synchronized (cache) {