public override void GetTagData(byte[] iccData, int index, ICCHeader header) { int dataLength = (int)(dataSize - 8) / 4; Data = new double[dataLength]; for (int i = 0; i < dataLength; i++) { int dataIndex = index + i * 4; Data[i] = HighEndianReader.GetU16Fixed16NumberToDouble(iccData, dataIndex, IsLittleEndian); } }
public override void GetTagData(byte[] iccData, int index, ICCHeader header) { Observer = (StandardObserver)HighEndianReader.GetUint32(iccData, index, IsLittleEndian); //nCIEXYZ tristimulus values for measurement backing XYZBacking = new XYZNumber(iccData, index + 4, IsLittleEndian); //Measurement geometry (4 bytes) Geometry = (MeasurementGeometry)HighEndianReader.GetUint32(iccData, index, IsLittleEndian); //Measurement flare (4 bytes) Flare = HighEndianReader.GetU16Fixed16NumberToDouble(iccData, index + 24, IsLittleEndian); //Standard illuminant (4 bytes) Illuminant = (StandardIlluminant)HighEndianReader.GetUint32(iccData, index + 24, IsLittleEndian); }
public override void GetTagData(byte[] iccData, int index, ICCHeader header = null) { ChannelCount = HighEndianReader.GetUInt16(iccData, index, IsLittleEndian); ColorantType = (EnumConst.ColorantEncoding)HighEndianReader.GetUInt16(iccData, index + 2, IsLittleEndian); if (ColorantType == EnumConst.ColorantEncoding.Unknown) { ChannelValues = new double[ChannelCount][]; for (int i = 0; i < ChannelCount; i++) { ChannelValues[i] = new double[2]; int startIndex = (index + 4) + i * 8; ChannelValues[i][0] = HighEndianReader.GetU16Fixed16NumberToDouble(iccData, startIndex, IsLittleEndian); ChannelValues[i][1] = HighEndianReader.GetU16Fixed16NumberToDouble(iccData, startIndex + 4, IsLittleEndian); } } else { ChannelValues = GetChannelValueByEncoding(ColorantType); } }