?? jmorecfg.h
字號:
#ifndef _JMORECFG_H_#define _JMORECFG_H_/* * Define BITS_IN_JSAMPLE as either * 8 for 8-bit sample values (the usual setting) * 12 for 12-bit sample values */#define BITS_IN_JSAMPLE 8 /* use 8 or 12 *//* * Maximum number of components (color channels) allowed in JPEG image. * To meet the letter of the JPEG spec, set this to 255. However, darn * few applications need more than 4 channels (maybe 5 for CMYK + alpha * mask). We recommend 10 as a reasonable compromise; use 4 if you are * really short on memory. (Each allowed component costs a hundred or so * bytes of storage, whether actually used in an image or not.) */#define MAX_COMPONENTS 10 /* maximum number of image components */#if BITS_IN_JSAMPLE == 8typedef unsigned char JSAMPLE;#define GETJSAMPLE(value) ((int) (value))#define MAXJSAMPLE 255#define CENTERJSAMPLE 128#endif /* BITS_IN_JSAMPLE == 8 */#if BITS_IN_JSAMPLE == 12typedef short JSAMPLE;#define GETJSAMPLE(value) ((int) (value))#define MAXJSAMPLE 4095#define CENTERJSAMPLE 2048#endif /* BITS_IN_JSAMPLE == 12 *//* Representation of a DCT frequency coefficient. * This should be a signed value of at least 16 bits; "short" is usually OK. * Again, we allocate large arrays of these, but you can change to int * if you have memory to burn and "short" is really slow. */typedef short JCOEF;/* Compressed datastreams are represented as arrays of JOCTET. * These must be EXACTLY 8 bits wide, at least once they are written to * external storage. Note that when using the stdio data source/destination * managers, this is also the data type passed to fread/fwrite. */typedef unsigned char JOCTET;#define GETJOCTET(value) (value)typedef unsigned char UINT8;typedef unsigned short UINT16;typedef short INT16;typedef long INT32;/* Datatype used for image dimensions. The JPEG standard only supports * images up to 64K*64K due to 16-bit fields in SOF markers. Therefore * "unsigned int" is sufficient on all machines. However, if you need to * handle larger images and you don't mind deviating from the spec, you * can change this datatype. */typedef unsigned int JDIMENSION;#define JPEG_MAX_DIMENSION 65500L /* a tad under 64K to prevent overflows *//* These macros are used in all function definitions and extern declarations. * You could modify them if you need to change function linkage conventions; * in particular, you'll need to do that to make the library a Windows DLL. * Another application is to make all functions global for use with debuggers * or code profilers that require it. */#define METHODDEF(type) static type#define LOCAL(type) static type#define GLOBAL(type) type#define EXTERN(type) extern type/* This macro is used to declare a "method", that is, a function pointer. * We want to supply prototype parameters if the compiler can cope. * Note that the arglist parameter must be parenthesized! * Again, you can customize this if you need special linkage keywords. */#define JMETHOD(type,methodname,arglist) type (*methodname) arglist#ifndef BOOLEAN_EXISTtypedef int boolean;#endif#ifndef FALSE /* in case these macros already exist */#define FALSE 0 /* values of boolean */#endif#ifndef TRUE#define TRUE 1#endif/* * The remaining options affect code selection within the JPEG library, * but they don't need to be visible to most applications using the library. * To minimize application namespace pollution, the symbols won't be * defined unless JPEG_INTERNALS or JPEG_INTERNAL_OPTIONS has been defined. */#ifdef JPEG_INTERNALS#define JPEG_INTERNAL_OPTIONS#endif#ifdef JPEG_INTERNAL_OPTIONS/* * These defines indicate whether to include various optional functions. * Undefining some of these symbols will produce a smaller but less capable * library. Note that you can leave certain source files out of the * compilation/linking process if you've #undef'd the corresponding symbols. * (You may HAVE to do that if your compiler doesn't like null source files.) *//* Arithmetic coding is unsupported for legal reasons. Complaints to IBM. *//* Capability options common to encoder and decoder: */#define DCT_IFAST_SUPPORTED /* faster, less accurate integer method *//* Encoder capability options: */#undef C_ARITH_CODING_SUPPORTED /* Arithmetic coding back end? */#define C_MULTISCAN_FILES_SUPPORTED /* Multiple-scan JPEG files? */#define C_PROGRESSIVE_SUPPORTED /* Progressive JPEG? (Requires MULTISCAN)*/#define ENTROPY_OPT_SUPPORTED /* Optimization of entropy coding parms? *//* Note: if you selected 12-bit data precision, it is dangerous to turn off * ENTROPY_OPT_SUPPORTED. The standard Huffman tables are only good for 8-bit * precision, so jchuff.c normally uses entropy optimization to compute * usable tables for higher precision. If you don't want to do optimization, * you'll have to supply different default Huffman tables. * The exact same statements apply for progressive JPEG: the default tables * don't work for progressive mode. (This may get fixed, however.) */#define INPUT_SMOOTHING_SUPPORTED /* Input image smoothing option? *//* Decoder capability options: */#undef D_ARITH_CODING_SUPPORTED /* Arithmetic coding back end? */#define D_MULTISCAN_FILES_SUPPORTED /* Multiple-scan JPEG files? */#define D_PROGRESSIVE_SUPPORTED /* Progressive JPEG? (Requires MULTISCAN)*/#define BLOCK_SMOOTHING_SUPPORTED /* Block smoothing? (Progressive only) */#define IDCT_SCALING_SUPPORTED /* Output rescaling via IDCT? */#undef UPSAMPLE_SCALING_SUPPORTED /* Output rescaling at upsample stage? */#define UPSAMPLE_MERGING_SUPPORTED /* Fast path for sloppy upsampling? */#define QUANT_1PASS_SUPPORTED /* 1-pass color quantization? */#define QUANT_2PASS_SUPPORTED /* 2-pass color quantization? */#define RGB_RED 0 /* Offset of Red in an RGB scanline element */#define RGB_GREEN 1 /* Offset of Green */#define RGB_BLUE 2 /* Offset of Blue */#define RGB_PIXELSIZE 3 /* JSAMPLEs per RGB scanline element *//* Definitions for speed-related optimizations. */#define FAST_FLOAT float#endif /* JPEG_INTERNAL_OPTIONS */#endif
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -