/// <summary>Analyze the box content. </summary> private void readBox() { byte[] boxHeader = new byte[256]; in_Renamed.seek(dataStart); in_Renamed.readFully(boxHeader, 0, 11); switch (boxHeader[0]) { case 1: method = CSJ2K.Color.ColorSpace.MethodEnum.ENUMERATED; int cs = CSJ2K.Icc.ICCProfile.getInt(boxHeader, 3); switch (cs) { case 16: colorSpace = CSJ2K.Color.ColorSpace.CSEnum.sRGB; break; // from switch (cs)... case 17: colorSpace = CSJ2K.Color.ColorSpace.CSEnum.GreyScale; break; // from switch (cs)... case 18: colorSpace = CSJ2K.Color.ColorSpace.CSEnum.sYCC; break; // from switch (cs)... case 20: colorSpace = CSJ2K.Color.ColorSpace.CSEnum.esRGB; break; #region Known but unsupported colorspaces case 3: FacilityManager.getMsgLogger().printmsg(CSJ2K.j2k.util.MsgLogger_Fields.WARNING, "Unsupported enumerated colorspace YCbCr(2) in color specification box"); colorSpace = CSJ2K.Color.ColorSpace.CSEnum.Unknown; break; case 4: FacilityManager.getMsgLogger().printmsg(CSJ2K.j2k.util.MsgLogger_Fields.WARNING, "Unsupported enumerated colorspace YCbCr(3) in color specification box"); colorSpace = CSJ2K.Color.ColorSpace.CSEnum.Unknown; break; case 9: FacilityManager.getMsgLogger().printmsg(CSJ2K.j2k.util.MsgLogger_Fields.WARNING, "Unsupported enumerated colorspace PhotoYCC in color specification box"); colorSpace = CSJ2K.Color.ColorSpace.CSEnum.Unknown; break; case 11: FacilityManager.getMsgLogger().printmsg(CSJ2K.j2k.util.MsgLogger_Fields.WARNING, "Unsupported enumerated colorspace CMY in color specification box"); colorSpace = CSJ2K.Color.ColorSpace.CSEnum.Unknown; break; case 12: FacilityManager.getMsgLogger().printmsg(CSJ2K.j2k.util.MsgLogger_Fields.WARNING, "Unsupported enumerated colorspace CMYK in color specification box"); colorSpace = CSJ2K.Color.ColorSpace.CSEnum.Unknown; break; case 13: FacilityManager.getMsgLogger().printmsg(CSJ2K.j2k.util.MsgLogger_Fields.WARNING, "Unsupported enumerated colorspace YCCK in color specification box"); colorSpace = CSJ2K.Color.ColorSpace.CSEnum.Unknown; break; case 14: FacilityManager.getMsgLogger().printmsg(CSJ2K.j2k.util.MsgLogger_Fields.WARNING, "Unsupported enumerated colorspace CIELab in color specification box"); colorSpace = CSJ2K.Color.ColorSpace.CSEnum.Unknown; break; case 15: FacilityManager.getMsgLogger().printmsg(CSJ2K.j2k.util.MsgLogger_Fields.WARNING, "Unsupported enumerated colorspace Bi-Level(2) in color specification box"); colorSpace = CSJ2K.Color.ColorSpace.CSEnum.Unknown; break; case 19: FacilityManager.getMsgLogger().printmsg(CSJ2K.j2k.util.MsgLogger_Fields.WARNING, "Unsupported enumerated colorspace CIEJab in color specification box"); colorSpace = CSJ2K.Color.ColorSpace.CSEnum.Unknown; break; case 21: FacilityManager.getMsgLogger().printmsg(CSJ2K.j2k.util.MsgLogger_Fields.WARNING, "Unsupported enumerated colorspace ROMM-RGB in color specification box"); colorSpace = CSJ2K.Color.ColorSpace.CSEnum.Unknown; break; case 22: FacilityManager.getMsgLogger().printmsg(CSJ2K.j2k.util.MsgLogger_Fields.WARNING, "Unsupported enumerated colorspace YPbPr(1125/60) in color specification box"); colorSpace = CSJ2K.Color.ColorSpace.CSEnum.Unknown; break; case 23: FacilityManager.getMsgLogger().printmsg(CSJ2K.j2k.util.MsgLogger_Fields.WARNING, "Unsupported enumerated colorspace YPbPr(1250/50) in color specification box"); colorSpace = CSJ2K.Color.ColorSpace.CSEnum.Unknown; break; case 24: FacilityManager.getMsgLogger().printmsg(CSJ2K.j2k.util.MsgLogger_Fields.WARNING, "Unsupported enumerated colorspace e-sYCC in color specification box"); colorSpace = CSJ2K.Color.ColorSpace.CSEnum.Unknown; break; #endregion default: FacilityManager.getMsgLogger().printmsg(CSJ2K.j2k.util.MsgLogger_Fields.WARNING, "Unknown enumerated colorspace (" + cs + ") in color specification box"); colorSpace = CSJ2K.Color.ColorSpace.CSEnum.Unknown; break; } break; // from switch (boxHeader[0])... case 2: method = CSJ2K.Color.ColorSpace.MethodEnum.ICC_PROFILED; int size = CSJ2K.Icc.ICCProfile.getInt(boxHeader, 3); iccProfile = new byte[size]; in_Renamed.seek(dataStart + 3); in_Renamed.readFully(iccProfile, 0, size); break; // from switch (boxHeader[0])... default: throw new ColorSpaceException("Bad specification method (" + boxHeader[0] + ") in " + this); } }
/// <summary>Analyze the box content. </summary> private void readBox() { byte[] boxHeader = new byte[256]; in_Renamed.seek(dataStart); in_Renamed.readFully(boxHeader, 0, 11); switch (boxHeader[0]) { case 1: method = CSJ2K.Color.ColorSpace.MethodEnum.ENUMERATED; int cs = CSJ2K.Icc.ICCProfile.getInt(boxHeader, 3); switch (cs) { case 16: colorSpace = CSJ2K.Color.ColorSpace.CSEnum.sRGB; break; // from switch (cs)... case 17: colorSpace = CSJ2K.Color.ColorSpace.CSEnum.GreyScale; break; // from switch (cs)... case 18: colorSpace = CSJ2K.Color.ColorSpace.CSEnum.sYCC; break; // from switch (cs)... case 20: colorSpace = CSJ2K.Color.ColorSpace.CSEnum.esRGB; break; #region Known but unsupported colorspaces case 3: FacilityManager.getMsgLogger().printmsg(CSJ2K.j2k.util.MsgLogger_Fields.WARNING, "Unsupported enumerated colorspace YCbCr(2) in color specification box"); colorSpace = CSJ2K.Color.ColorSpace.CSEnum.Unknown; break; case 4: FacilityManager.getMsgLogger().printmsg(CSJ2K.j2k.util.MsgLogger_Fields.WARNING, "Unsupported enumerated colorspace YCbCr(3) in color specification box"); colorSpace = CSJ2K.Color.ColorSpace.CSEnum.Unknown; break; case 9: FacilityManager.getMsgLogger().printmsg(CSJ2K.j2k.util.MsgLogger_Fields.WARNING, "Unsupported enumerated colorspace PhotoYCC in color specification box"); colorSpace = CSJ2K.Color.ColorSpace.CSEnum.Unknown; break; case 11: FacilityManager.getMsgLogger().printmsg(CSJ2K.j2k.util.MsgLogger_Fields.WARNING, "Unsupported enumerated colorspace CMY in color specification box"); colorSpace = CSJ2K.Color.ColorSpace.CSEnum.Unknown; break; case 12: FacilityManager.getMsgLogger().printmsg(CSJ2K.j2k.util.MsgLogger_Fields.WARNING, "Unsupported enumerated colorspace CMYK in color specification box"); colorSpace = CSJ2K.Color.ColorSpace.CSEnum.Unknown; break; case 13: FacilityManager.getMsgLogger().printmsg(CSJ2K.j2k.util.MsgLogger_Fields.WARNING, "Unsupported enumerated colorspace YCCK in color specification box"); colorSpace = CSJ2K.Color.ColorSpace.CSEnum.Unknown; break; case 14: FacilityManager.getMsgLogger().printmsg(CSJ2K.j2k.util.MsgLogger_Fields.WARNING, "Unsupported enumerated colorspace CIELab in color specification box"); colorSpace = CSJ2K.Color.ColorSpace.CSEnum.Unknown; break; case 15: FacilityManager.getMsgLogger().printmsg(CSJ2K.j2k.util.MsgLogger_Fields.WARNING, "Unsupported enumerated colorspace Bi-Level(2) in color specification box"); colorSpace = CSJ2K.Color.ColorSpace.CSEnum.Unknown; break; case 19: FacilityManager.getMsgLogger().printmsg(CSJ2K.j2k.util.MsgLogger_Fields.WARNING, "Unsupported enumerated colorspace CIEJab in color specification box"); colorSpace = CSJ2K.Color.ColorSpace.CSEnum.Unknown; break; case 21: FacilityManager.getMsgLogger().printmsg(CSJ2K.j2k.util.MsgLogger_Fields.WARNING, "Unsupported enumerated colorspace ROMM-RGB in color specification box"); colorSpace = CSJ2K.Color.ColorSpace.CSEnum.Unknown; break; case 22: FacilityManager.getMsgLogger().printmsg(CSJ2K.j2k.util.MsgLogger_Fields.WARNING, "Unsupported enumerated colorspace YPbPr(1125/60) in color specification box"); colorSpace = CSJ2K.Color.ColorSpace.CSEnum.Unknown; break; case 23: FacilityManager.getMsgLogger().printmsg(CSJ2K.j2k.util.MsgLogger_Fields.WARNING, "Unsupported enumerated colorspace YPbPr(1250/50) in color specification box"); colorSpace = CSJ2K.Color.ColorSpace.CSEnum.Unknown; break; case 24: FacilityManager.getMsgLogger().printmsg(CSJ2K.j2k.util.MsgLogger_Fields.WARNING, "Unsupported enumerated colorspace e-sYCC in color specification box"); colorSpace = CSJ2K.Color.ColorSpace.CSEnum.Unknown; break; #endregion default: FacilityManager.getMsgLogger().printmsg(CSJ2K.j2k.util.MsgLogger_Fields.WARNING, "Unknown enumerated colorspace (" + cs + ") in color specification box"); colorSpace = CSJ2K.Color.ColorSpace.CSEnum.Unknown; break; } break; // from switch (boxHeader[0])... case 2: method = CSJ2K.Color.ColorSpace.MethodEnum.ICC_PROFILED; int size = CSJ2K.Icc.ICCProfile.getInt(boxHeader, 3); iccProfile = new byte[size]; in_Renamed.seek(dataStart + 3); in_Renamed.readFully(iccProfile, 0, size); break; // from switch (boxHeader[0])... default: throw new ColorSpaceException("Bad specification method (" + boxHeader[0] + ") in " + this); } }