Esempio n. 1
0
 public ProfileDescription(byte[] iccData, int index, ICCHeader header)
 {
     DeviceManufacturer = HighEndianReader.GetUint32(iccData, index);
     //Device model signature (4 bytes)
     DeviceModel = HighEndianReader.GetUint32(iccData, index + 4);
     //Device attributes (8 bytes)
     DeviceAttributes = new DeviceAttribute(iccData, index + 8);
     //Device technology information (4 bytes)
     TechnologyInformation = (TagSignature)HighEndianReader.GetUint32(iccData, index + 16);
     //Displayable description of device manufacturer (profile's deviceMfgDescTag)
     DeviceManufacturerInfo = new MultiLocalizedUnicodeTag()
     {
         IsPlaceHolder = header.DeviceManufacturer == 0
     };
     DeviceManufacturerInfo.GetTagData(iccData, index + 20, header);
     //Displayable description of device model (profile's deviceModelDescTag)
     DeviceModelInfo = new MultiLocalizedUnicodeTag()
     {
         IsPlaceHolder = header.DeviceModel == 0
     };
     DeviceModelInfo.GetTagData(iccData, DeviceManufacturerInfo.LengthInByte + index + 20, header);
     //end = DeviceModelInfo.end;
 }
        private static ICCTagData ReadTagData(TypeSignature type, byte[] iccData, int index,
                                              ICCHeader header)
        {
            ICCTagData t = null;

            switch (type)
            {
            case TypeSignature.chromaticity:
                t = new ChromaticityTag();
                break;

            case TypeSignature.colorantOrder:
                t = new ColorantOrderTag();
                break;

            case TypeSignature.colorantTable:
                t = new ColorantTableTag();
                break;

            case TypeSignature.curve:
                t = new CurveTag();
                break;

            case TypeSignature.data:
                t = new DataTag();
                break;

            case TypeSignature.dateTime:
                t = new DateTimeTag();
                break;

            case TypeSignature.lut16:
                t = new Lut16Tag();
                break;

            case TypeSignature.lut8:
                t = new Lut8Tag();
                break;

            case TypeSignature.lutAToB:
                t = new LutAToBTag();
                break;

            case TypeSignature.lutBToA:
                t = new LutBToATag();
                break;

            case TypeSignature.measurement:
                t = new MeasurementTag();
                break;

            case TypeSignature.multiLocalizedUnicode:
                t = new MultiLocalizedUnicodeTag()
                {
                    IsPlaceHolder = false
                };

                break;

            case TypeSignature.multiProcessElements:
                t = new MultiProcessElementsTag();
                break;

            case TypeSignature.namedColor2:
                t = new NamedColor2Tag();
                break;

            case TypeSignature.parametricCurve:
                t = new ParametricCurveTag();
                break;

            case TypeSignature.profileSequenceDesc:
                t = new ProfileSequenceDescTag();
                break;

            case TypeSignature.profileSequenceIdentifier:
                t = new ProfileSequenceIdentifierTag();
                break;

            case TypeSignature.responseCurveSet16:
                t = new ResponseCurveSet16Tag();
                break;

            case TypeSignature.s15Fixed16Array:
                t = new s15Fixed16ArrayTag();
                break;

            case TypeSignature.signature:
                t = new SignatureTag();
                break;

            case TypeSignature.text:
                t = new TextTag();
                break;

            case TypeSignature.u16Fixed16Array:
                t = new u16Fixed16ArrayTag();
                break;

            case TypeSignature.uInt16Array:
                t = new uInt16ArrayTag();
                break;

            case TypeSignature.uInt32Array:
                t = new uInt32ArrayTag();
                break;

            case TypeSignature.uInt64Array:
                t = new uInt64ArrayTag();
                break;

            case TypeSignature.uInt8Array:
                t = new uInt8ArrayTag();
                break;

            case TypeSignature.viewingConditions:
                t = new ViewingConditionTag();
                break;

            case TypeSignature.XYZ:
                t = new XYZTag();
                break;
            }
            t.GetTagData(iccData, index, header);
            return(t);
        }