/// <summary> /// Initialize a new instance of the <see cref="ColorCharacteristicDetail"/> class with the data in this section untreated. /// </summary> /// <param name="color">Color to get</param> /// <param name="sectionData">Unprocessed data in this section</param> public ColorCharacteristicDetail(ReadOnlyCollection <byte> sectionData, ColorManagementDataDescriptor.KnownColor color) : base(sectionData) { var vCx = 0.0; var vCy = 0.0; var color1 = color; int cx = LogicHelper.Word((byte)((sectionData[0x00] >> (color1 == ColorManagementDataDescriptor.KnownColor.Red || color1 == ColorManagementDataDescriptor.KnownColor.Blue ? 6 : (color1 == ColorManagementDataDescriptor.KnownColor.Green || color1 == ColorManagementDataDescriptor.KnownColor.White ? 2 : 0)) & 0x03) << 6), sectionData[0x01]) >> 6; int cy = LogicHelper.Word((byte)((sectionData[0x00] >> (color1 == ColorManagementDataDescriptor.KnownColor.Red || color1 == ColorManagementDataDescriptor.KnownColor.Blue ? 4 : (color1 == ColorManagementDataDescriptor.KnownColor.Green || color1 == ColorManagementDataDescriptor.KnownColor.White ? 0 : 0)) & 0x03) << 6), sectionData[0x02]) >> 6; for (var i = 0; i <= 9; vCx += cx.CheckBit((Bits)i) ? System.Math.Pow(2, i - 10) : 0, vCy += cy.CheckBit((Bits)i) ? System.Math.Pow(2, i - 10) : 0, i++) { } Value = new PointF((float)vCx, (float)vCy); }
/// <summary> /// Returns the value that contains the specified key. /// </summary> /// <param name="color">Color that is going to recover</param> /// <returns> /// Value of the specified color. /// </returns> private PointF Color(ColorManagementDataDescriptor.KnownColor color) => ColorTable[color];