📄 icc34.h
字号:
/* Header file guard bands */#ifndef ICC_H#define ICC_H/***************************************************************** Copyright (c) 1994-1996 SunSoft, Inc. Rights ReservedPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentationfiles (the "Software"), to deal in the Software without restrict- ion, including without limitation the rights to use, copy, modify, merge, publish distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL SUNSOFT, INC. OR ITS PARENT COMPANY BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. Except as contained in this notice, the name of SunSoft, Inc. shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without written authorization from SunSoft Inc. ******************************************************************//* * This version of the header file corresponds to the profile * specification version 3.4. * * All header file entries are pre-fixed with "ic" to help * avoid name space collisions. Signatures are pre-fixed with * icSig. * * The structures defined in this header file were created to * represent a description of an ICC profile on disk. Rather * than use pointers a technique is used where a single byte array * was placed at the end of each structure. This allows us in "C" * to extend the structure by allocating more data than is needed * to account for variable length structures. * * This also ensures that data following is allocated * contiguously and makes it easier to write and read data from * the file. * * For example to allocate space for a 256 count length UCR * and BG array, and fill the allocated data. Note strlen + 1 * to remember NULL terminator. * icUcrBgCurve *ucrCurve, *bgCurve; int ucr_nbytes, bg_nbytes, string_bytes; icUcrBg *ucrBgWrite; char ucr_string[100], *ucr_char; strcpy(ucr_string, "Example ucrBG curves"); ucr_nbytes = sizeof(icUInt32Number) + (UCR_CURVE_SIZE * sizeof(icUInt16Number)); bg_nbytes = sizeof(icUInt32Number) + (BG_CURVE_SIZE * sizeof(icUInt16Number)); string_bytes = strlen(ucr_string) + 1; ucrBgWrite = (icUcrBg *)malloc( (ucr_nbytes + bg_nbytes + string_bytes)); ucrCurve = (icUcrBgCurve *)ucrBgWrite->data; ucrCurve->count = UCR_CURVE_SIZE; for (i=0; i<ucrCurve->count; i++) ucrCurve->curve[i] = (icUInt16Number)i; bgCurve = (icUcrBgCurve *)((char *)ucrCurve + ucr_nbytes); bgCurve->count = BG_CURVE_SIZE; for (i=0; i<bgCurve->count; i++) bgCurve->curve[i] = 255 - (icUInt16Number)i; ucr_char = (char *)((char *)bgCurve + bg_nbytes); memcpy(ucr_char, ucr_string, string_bytes); * *//* * Many of the structures contain variable length arrays. This * is represented by the use of the convention. * * type data[icAny]; *//*------------------------------------------------------------------------*//* * Defines used in the specification */#define icMagicNumber 0x61637370L /* 'acsp' */#define icVersionNumber 0x02100000L /* 2.1.0, BCD *//* Screening Encodings */#define icPrtrDefaultScreensFalse 0x00000000L /* Bit pos 0 */#define icPrtrDefaultScreensTrue 0x00000001L /* Bit pos 0 */#define icLinesPerInch 0x00000002L /* Bit pos 1 */#define icLinesPerCm 0x00000000L /* Bit pos 1 *//* * Device attributes, currently defined values correspond * to the low 4 bytes of the 8 byte attribute quantity, see * the header for their location. */#define icReflective 0x00000000L /* Bit pos 0 */#define icTransparency 0x00000001L /* Bit pos 0 */#define icGlossy 0x00000000L /* Bit pos 1 */#define icMatte 0x00000002L /* Bit pos 1 *//* * Profile header flags, the low 16 bits are reserved for consortium * use. */#define icEmbeddedProfileFalse 0x00000000L /* Bit pos 0 */#define icEmbeddedProfileTrue 0x00000001L /* Bit pos 0 */#define icUseAnywhere 0x00000000L /* Bit pos 1 */#define icUseWithEmbeddedDataOnly 0x00000002L /* Bit pos 1 *//* Ascii or Binary data */#define icAsciiData 0x00000000L #define icBinaryData 0x00000001L/* * Define used to indicate that this is a variable length array */#define icAny 1/*------------------------------------------------------------------------*//* * Use this area to translate platform definitions of long * etc into icXXX form. The rest of the header uses the icXXX * typedefs. Signatures are 4 byte quantities. * */#ifdef PACKAGE_NAME/* June 9, 2003, Adapted for use with configure by Bob Friesenhahn Added the stupid check for autoconf by Marti Maria */typedef @INT32_T@ icSignature;typedef @UINT8_T@ icUInt8Number;typedef @UINT16_T@ icUInt16Number;typedef @UINT32_T@ icUInt32Number;typedef @UINT32_T@ icUInt64Number[2];typedef @INT8_T@ icInt8Number;typedef @INT16_T@ icInt16Number;typedef @INT32_T@ icInt32Number;typedef @INT32_T@ icInt64Number[2];typedef icInt32Number icS15Fixed16Number;typedef icUInt32Number icU16Fixed16Number;#else/* *Apr-17-2002: Modified by Marti Maria in order to provide wider portability. */#if defined (__digital__) && defined (__unix__)/* Tru64 */#include <inttypes.h>typedef int32_t icSignature; typedef uint8_t icUInt8Number;typedef uint16_t icUInt16Number;typedef uint32_t icUInt32Number;typedef uint32_t icUInt64Number[2];typedef int8_t icInt8Number;typedef int16_t icInt16Number;typedef int32_t icInt32Number;typedef int32_t icInt64Number[2];typedef icInt32Number icS15Fixed16Number;typedef icUInt32Number icU16Fixed16Number;#else#ifdef __sgi#include "sgidefs.h"typedef __int32_t icSignature; /* * Number definitions *//* Unsigned integer numbers */typedef unsigned char icUInt8Number;typedef unsigned short icUInt16Number;typedef __uint32_t icUInt32Number;typedef __uint32_t icUInt64Number[2];/* Signed numbers */typedef char icInt8Number;typedef short icInt16Number;typedef __int32_t icInt32Number;typedef __int32_t icInt64Number[2];/* Fixed numbers */typedef __int32_t icS15Fixed16Number;typedef __uint32_t icU16Fixed16Number;#else #if defined(__GNUC__) || defined(__unix__) || defined(__unix)#include <sys/types.h>typedef int32_t icSignature; #if defined(__sun) || defined(__hpux) typedef uint8_t icUInt8Number;typedef uint16_t icUInt16Number;typedef uint32_t icUInt32Number;typedef uint32_t icUInt64Number[2];#else/* Unsigned integer numbers */typedef u_int8_t icUInt8Number;typedef u_int16_t icUInt16Number;typedef u_int32_t icUInt32Number;typedef u_int32_t icUInt64Number[2];#endif/* Signed numbers */typedef int8_t icInt8Number;typedef int16_t icInt16Number;typedef int32_t icInt32Number;typedef int32_t icInt64Number[2];/* Fixed numbers */typedef icInt32Number icS15Fixed16Number;typedef icUInt32Number icU16Fixed16Number;#else /* default definitions */typedef long icSignature;/* * Number definitions *//* Unsigned integer numbers */typedef unsigned char icUInt8Number;typedef unsigned short icUInt16Number;typedef unsigned long icUInt32Number;typedef unsigned long icUInt64Number[2];/* Signed numbers */typedef char icInt8Number;typedef short icInt16Number;typedef long icInt32Number;typedef long icInt64Number[2];/* Fixed numbers */typedef long icS15Fixed16Number;typedef unsigned long icU16Fixed16Number;#endif /* default defs */#endif#endif#endif/*------------------------------------------------------------------------*//* public tags and sizes */typedef enum { icSigAToB0Tag = 0x41324230L, /* 'A2B0' */ icSigAToB1Tag = 0x41324231L, /* 'A2B1' */ icSigAToB2Tag = 0x41324232L, /* 'A2B2' */ icSigBlueColorantTag = 0x6258595AL, /* 'bXYZ' */ icSigBlueTRCTag = 0x62545243L, /* 'bTRC' */ icSigBToA0Tag = 0x42324130L, /* 'B2A0' */ icSigBToA1Tag = 0x42324131L, /* 'B2A1' */ icSigBToA2Tag = 0x42324132L, /* 'B2A2' */ icSigCalibrationDateTimeTag = 0x63616C74L, /* 'calt' */ icSigCharTargetTag = 0x74617267L, /* 'targ' */ icSigCopyrightTag = 0x63707274L, /* 'cprt' */ icSigCrdInfoTag = 0x63726469L, /* 'crdi' */ icSigDeviceMfgDescTag = 0x646D6E64L, /* 'dmnd' */ icSigDeviceModelDescTag = 0x646D6464L, /* 'dmdd' */ icSigGamutTag = 0x67616D74L, /* 'gamt ' */ icSigGrayTRCTag = 0x6b545243L, /* 'kTRC' */ icSigGreenColorantTag = 0x6758595AL, /* 'gXYZ' */ icSigGreenTRCTag = 0x67545243L, /* 'gTRC' */ icSigLuminanceTag = 0x6C756d69L, /* 'lumi' */ icSigMeasurementTag = 0x6D656173L, /* 'meas' */ icSigMediaBlackPointTag = 0x626B7074L, /* 'bkpt' */ icSigMediaWhitePointTag = 0x77747074L, /* 'wtpt' */ icSigNamedColorTag = 0x6E636f6CL, /* 'ncol' * OBSOLETE, use ncl2 */ icSigNamedColor2Tag = 0x6E636C32L, /* 'ncl2' */ icSigPreview0Tag = 0x70726530L, /* 'pre0' */ icSigPreview1Tag = 0x70726531L, /* 'pre1' */ icSigPreview2Tag = 0x70726532L, /* 'pre2' */ icSigProfileDescriptionTag = 0x64657363L, /* 'desc' */ icSigProfileSequenceDescTag = 0x70736571L, /* 'pseq' */ icSigPs2CRD0Tag = 0x70736430L, /* 'psd0' */ icSigPs2CRD1Tag = 0x70736431L, /* 'psd1' */ icSigPs2CRD2Tag = 0x70736432L, /* 'psd2' */ icSigPs2CRD3Tag = 0x70736433L, /* 'psd3' */ icSigPs2CSATag = 0x70733273L, /* 'ps2s' */ icSigPs2RenderingIntentTag = 0x70733269L, /* 'ps2i' */ icSigRedColorantTag = 0x7258595AL, /* 'rXYZ' */ icSigRedTRCTag = 0x72545243L, /* 'rTRC' */ icSigScreeningDescTag = 0x73637264L, /* 'scrd' */ icSigScreeningTag = 0x7363726EL, /* 'scrn' */ icSigTechnologyTag = 0x74656368L, /* 'tech' */ icSigUcrBgTag = 0x62666420L, /* 'bfd ' */ icSigViewingCondDescTag = 0x76756564L, /* 'vued' */ icSigViewingConditionsTag = 0x76696577L, /* 'view' */ icMaxEnumTag = 0xFFFFFFFFL } icTagSignature;/* technology signature descriptions */typedef enum { icSigDigitalCamera = 0x6463616DL, /* 'dcam' */ icSigFilmScanner = 0x6673636EL, /* 'fscn' */ icSigReflectiveScanner = 0x7273636EL, /* 'rscn' */ icSigInkJetPrinter = 0x696A6574L, /* 'ijet' */ icSigThermalWaxPrinter = 0x74776178L, /* 'twax' */ icSigElectrophotographicPrinter = 0x6570686FL, /* 'epho' */ icSigElectrostaticPrinter = 0x65737461L, /* 'esta' */ icSigDyeSublimationPrinter = 0x64737562L, /* 'dsub' */ icSigPhotographicPaperPrinter = 0x7270686FL, /* 'rpho' */ icSigFilmWriter = 0x6670726EL, /* 'fprn' */ icSigVideoMonitor = 0x7669646DL, /* 'vidm' */ icSigVideoCamera = 0x76696463L, /* 'vidc' */ icSigProjectionTelevision = 0x706A7476L, /* 'pjtv' */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -