Doc fix + minor clean-up

This commit is contained in:
Harald Kuhr 2011-02-25 16:26:33 +01:00
parent 2d04b8d484
commit 5545a08854

View File

@ -59,7 +59,8 @@ import java.util.Properties;
* <a href="http://www.adobe.com/downloads/">Adobe</a> or other places. * <a href="http://www.adobe.com/downloads/">Adobe</a> or other places.
* <p /> * <p />
* Example property file: * Example property file:
* <pre>probably * <pre>
* # icc_profiles.properties
* ADOBE_RGB_1998=/path/to/Adobe RGB 1998.icc * ADOBE_RGB_1998=/path/to/Adobe RGB 1998.icc
* GENERIC_CMYK=/path/to/Generic CMYK.icc * GENERIC_CMYK=/path/to/Generic CMYK.icc
* </pre> * </pre>
@ -103,7 +104,7 @@ public final class ColorSpaces {
byte[] profileHeader = profile.getData(ICC_Profile.icSigHead); byte[] profileHeader = profile.getData(ICC_Profile.icSigHead);
ICC_ColorSpace cs = getInternalCS(profile, profileHeader); ICC_ColorSpace cs = getInternalCS(profile.getColorSpaceType(), profileHeader);
if (cs != null) { if (cs != null) {
return cs; return cs;
} }
@ -114,39 +115,39 @@ public final class ColorSpaces {
profileHeader[ICC_Profile.icHdrRenderingIntent] = 0; profileHeader[ICC_Profile.icHdrRenderingIntent] = 0;
// Test again if this is an internal CS // Test again if this is an internal CS
cs = getInternalCS(profile, profileHeader); cs = getInternalCS(profile.getColorSpaceType(), profileHeader);
if (cs != null) { if (cs != null) {
return cs; return cs;
} }
// Fix profile // Fix profile before lookup/create
profile.setData(ICC_Profile.icSigHead, profileHeader); 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) { private static ICC_ColorSpace getInternalCS(final int profileCSType, final byte[] profileHeader) {
if (profile.getColorSpaceType() == ColorSpace.TYPE_RGB && Arrays.equals(profileHeader, sRGB.header)) { if (profileCSType == ColorSpace.TYPE_RGB && Arrays.equals(profileHeader, sRGB.header)) {
return (ICC_ColorSpace) ColorSpace.getInstance(ColorSpace.CS_sRGB); 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); 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); 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); 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 (ICC_ColorSpace) ColorSpace.getInstance(ColorSpace.CS_CIEXYZ);
} }
return null; 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); Key key = new Key(profileHeader);
synchronized (cache) { synchronized (cache) {