⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gfxstate.h

📁 source code: Covert TXT to PDF
💻 H
📖 第 1 页 / 共 2 页
字号:
//========================================================================//// GfxState.h//// Copyright 1996-2002 Glyph & Cog, LLC////========================================================================#ifndef GFXSTATE_H#define GFXSTATE_H#include <aconf.h>#ifdef USE_GCC_PRAGMAS#pragma interface#endif#include "gtypes.h"#include "Object.h"#include "Function.h"class Array;class GfxFont;class PDFRectangle;//------------------------------------------------------------------------// GfxColor//------------------------------------------------------------------------#define gfxColorMaxComps funcMaxOutputsstruct GfxColor {  double c[gfxColorMaxComps];};//------------------------------------------------------------------------// GfxRGB//------------------------------------------------------------------------struct GfxRGB {  double r, g, b;};//------------------------------------------------------------------------// GfxCMYK//------------------------------------------------------------------------struct GfxCMYK {  double c, m, y, k;};//------------------------------------------------------------------------// GfxColorSpace//------------------------------------------------------------------------// NB: The nGfxColorSpaceModes constant and the gfxColorSpaceModeNames// array defined in GfxState.cc must match this enum.enum GfxColorSpaceMode {  csDeviceGray,  csCalGray,  csDeviceRGB,  csCalRGB,  csDeviceCMYK,  csLab,  csICCBased,  csIndexed,  csSeparation,  csDeviceN,  csPattern};class GfxColorSpace {public:  GfxColorSpace();  virtual ~GfxColorSpace();  virtual GfxColorSpace *copy() = 0;  virtual GfxColorSpaceMode getMode() = 0;  // Construct a color space.  Returns NULL if unsuccessful.  static GfxColorSpace *parse(Object *csObj);  // Convert to gray, RGB, or CMYK.  virtual void getGray(GfxColor *color, double *gray) = 0;  virtual void getRGB(GfxColor *color, GfxRGB *rgb) = 0;  virtual void getCMYK(GfxColor *color, GfxCMYK *cmyk) = 0;  // Return the number of color components.  virtual int getNComps() = 0;  // Return the default ranges for each component, assuming an image  // with a max pixel value of <maxImgPixel>.  virtual void getDefaultRanges(double *decodeLow, double *decodeRange,				int maxImgPixel);  // Return the number of color space modes  static int getNumColorSpaceModes();  // Return the name of the <idx>th color space mode.  static char *getColorSpaceModeName(int idx);private:};//------------------------------------------------------------------------// GfxDeviceGrayColorSpace//------------------------------------------------------------------------class GfxDeviceGrayColorSpace: public GfxColorSpace {public:  GfxDeviceGrayColorSpace();  virtual ~GfxDeviceGrayColorSpace();  virtual GfxColorSpace *copy();  virtual GfxColorSpaceMode getMode() { return csDeviceGray; }  virtual void getGray(GfxColor *color, double *gray);  virtual void getRGB(GfxColor *color, GfxRGB *rgb);  virtual void getCMYK(GfxColor *color, GfxCMYK *cmyk);  virtual int getNComps() { return 1; }private:};//------------------------------------------------------------------------// GfxCalGrayColorSpace//------------------------------------------------------------------------class GfxCalGrayColorSpace: public GfxColorSpace {public:  GfxCalGrayColorSpace();  virtual ~GfxCalGrayColorSpace();  virtual GfxColorSpace *copy();  virtual GfxColorSpaceMode getMode() { return csCalGray; }  // Construct a CalGray color space.  Returns NULL if unsuccessful.  static GfxColorSpace *parse(Array *arr);  virtual void getGray(GfxColor *color, double *gray);  virtual void getRGB(GfxColor *color, GfxRGB *rgb);  virtual void getCMYK(GfxColor *color, GfxCMYK *cmyk);  virtual int getNComps() { return 1; }  // CalGray-specific access.  double getWhiteX() { return whiteX; }  double getWhiteY() { return whiteY; }  double getWhiteZ() { return whiteZ; }  double getBlackX() { return blackX; }  double getBlackY() { return blackY; }  double getBlackZ() { return blackZ; }  double getGamma() { return gamma; }private:  double whiteX, whiteY, whiteZ;    // white point  double blackX, blackY, blackZ;    // black point  double gamma;			    // gamma value};//------------------------------------------------------------------------// GfxDeviceRGBColorSpace//------------------------------------------------------------------------class GfxDeviceRGBColorSpace: public GfxColorSpace {public:  GfxDeviceRGBColorSpace();  virtual ~GfxDeviceRGBColorSpace();  virtual GfxColorSpace *copy();  virtual GfxColorSpaceMode getMode() { return csDeviceRGB; }  virtual void getGray(GfxColor *color, double *gray);  virtual void getRGB(GfxColor *color, GfxRGB *rgb);  virtual void getCMYK(GfxColor *color, GfxCMYK *cmyk);  virtual int getNComps() { return 3; }private:};//------------------------------------------------------------------------// GfxCalRGBColorSpace//------------------------------------------------------------------------class GfxCalRGBColorSpace: public GfxColorSpace {public:  GfxCalRGBColorSpace();  virtual ~GfxCalRGBColorSpace();  virtual GfxColorSpace *copy();  virtual GfxColorSpaceMode getMode() { return csCalRGB; }  // Construct a CalRGB color space.  Returns NULL if unsuccessful.  static GfxColorSpace *parse(Array *arr);  virtual void getGray(GfxColor *color, double *gray);  virtual void getRGB(GfxColor *color, GfxRGB *rgb);  virtual void getCMYK(GfxColor *color, GfxCMYK *cmyk);  virtual int getNComps() { return 3; }  // CalRGB-specific access.  double getWhiteX() { return whiteX; }  double getWhiteY() { return whiteY; }  double getWhiteZ() { return whiteZ; }  double getBlackX() { return blackX; }  double getBlackY() { return blackY; }  double getBlackZ() { return blackZ; }  double getGammaR() { return gammaR; }  double getGammaG() { return gammaG; }  double getGammaB() { return gammaB; }  double *getMatrix() { return mat; }private:  double whiteX, whiteY, whiteZ;    // white point  double blackX, blackY, blackZ;    // black point  double gammaR, gammaG, gammaB;    // gamma values  double mat[9];		// ABC -> XYZ transform matrix};//------------------------------------------------------------------------// GfxDeviceCMYKColorSpace//------------------------------------------------------------------------class GfxDeviceCMYKColorSpace: public GfxColorSpace {public:  GfxDeviceCMYKColorSpace();  virtual ~GfxDeviceCMYKColorSpace();  virtual GfxColorSpace *copy();  virtual GfxColorSpaceMode getMode() { return csDeviceCMYK; }  virtual void getGray(GfxColor *color, double *gray);  virtual void getRGB(GfxColor *color, GfxRGB *rgb);  virtual void getCMYK(GfxColor *color, GfxCMYK *cmyk);  virtual int getNComps() { return 4; }private:};//------------------------------------------------------------------------// GfxLabColorSpace//------------------------------------------------------------------------class GfxLabColorSpace: public GfxColorSpace {public:  GfxLabColorSpace();  virtual ~GfxLabColorSpace();  virtual GfxColorSpace *copy();  virtual GfxColorSpaceMode getMode() { return csLab; }  // Construct a Lab color space.  Returns NULL if unsuccessful.  static GfxColorSpace *parse(Array *arr);  virtual void getGray(GfxColor *color, double *gray);  virtual void getRGB(GfxColor *color, GfxRGB *rgb);  virtual void getCMYK(GfxColor *color, GfxCMYK *cmyk);  virtual int getNComps() { return 3; }  virtual void getDefaultRanges(double *decodeLow, double *decodeRange,				int maxImgPixel);  // Lab-specific access.  double getWhiteX() { return whiteX; }  double getWhiteY() { return whiteY; }  double getWhiteZ() { return whiteZ; }  double getBlackX() { return blackX; }  double getBlackY() { return blackY; }  double getBlackZ() { return blackZ; }  double getAMin() { return aMin; }  double getAMax() { return aMax; }  double getBMin() { return bMin; }  double getBMax() { return bMax; }private:  double whiteX, whiteY, whiteZ;    // white point  double blackX, blackY, blackZ;    // black point  double aMin, aMax, bMin, bMax;    // range for the a and b components  double kr, kg, kb;		    // gamut mapping mulitpliers};//------------------------------------------------------------------------// GfxICCBasedColorSpace//------------------------------------------------------------------------class GfxICCBasedColorSpace: public GfxColorSpace {public:  GfxICCBasedColorSpace(int nCompsA, GfxColorSpace *altA,			Ref *iccProfileStreamA);  virtual ~GfxICCBasedColorSpace();  virtual GfxColorSpace *copy();  virtual GfxColorSpaceMode getMode() { return csICCBased; }  // Construct an ICCBased color space.  Returns NULL if unsuccessful.  static GfxColorSpace *parse(Array *arr);  virtual void getGray(GfxColor *color, double *gray);  virtual void getRGB(GfxColor *color, GfxRGB *rgb);  virtual void getCMYK(GfxColor *color, GfxCMYK *cmyk);  virtual int getNComps() { return nComps; }  virtual void getDefaultRanges(double *decodeLow, double *decodeRange,				int maxImgPixel);  // ICCBased-specific access.  GfxColorSpace *getAlt() { return alt; }private:  int nComps;			// number of color components (1, 3, or 4)  GfxColorSpace *alt;		// alternate color space  double rangeMin[4];		// min values for each component  double rangeMax[4];		// max values for each component  Ref iccProfileStream;		// the ICC profile};//------------------------------------------------------------------------// GfxIndexedColorSpace//------------------------------------------------------------------------class GfxIndexedColorSpace: public GfxColorSpace {public:  GfxIndexedColorSpace(GfxColorSpace *baseA, int indexHighA);  virtual ~GfxIndexedColorSpace();  virtual GfxColorSpace *copy();  virtual GfxColorSpaceMode getMode() { return csIndexed; }  // Construct a Lab color space.  Returns NULL if unsuccessful.  static GfxColorSpace *parse(Array *arr);  virtual void getGray(GfxColor *color, double *gray);  virtual void getRGB(GfxColor *color, GfxRGB *rgb);  virtual void getCMYK(GfxColor *color, GfxCMYK *cmyk);  virtual int getNComps() { return 1; }  virtual void getDefaultRanges(double *decodeLow, double *decodeRange,				int maxImgPixel);  // Indexed-specific access.  GfxColorSpace *getBase() { return base; }  int getIndexHigh() { return indexHigh; }  Guchar *getLookup() { return lookup; }  GfxColor *mapColorToBase(GfxColor *color, GfxColor *baseColor);private:  GfxColorSpace *base;		// base color space  int indexHigh;		// max pixel value  Guchar *lookup;		// lookup table};//------------------------------------------------------------------------// GfxSeparationColorSpace//------------------------------------------------------------------------class GfxSeparationColorSpace: public GfxColorSpace {public:  GfxSeparationColorSpace(GString *nameA, GfxColorSpace *altA,			  Function *funcA);  virtual ~GfxSeparationColorSpace();  virtual GfxColorSpace *copy();  virtual GfxColorSpaceMode getMode() { return csSeparation; }  // Construct a Separation color space.  Returns NULL if unsuccessful.  static GfxColorSpace *parse(Array *arr);  virtual void getGray(GfxColor *color, double *gray);  virtual void getRGB(GfxColor *color, GfxRGB *rgb);  virtual void getCMYK(GfxColor *color, GfxCMYK *cmyk);  virtual int getNComps() { return 1; }  // Separation-specific access.  GString *getName() { return name; }  GfxColorSpace *getAlt() { return alt; }  Function *getFunc() { return func; }private:  GString *name;		// colorant name  GfxColorSpace *alt;		// alternate color space  Function *func;		// tint transform (into alternate color space)};//------------------------------------------------------------------------// GfxDeviceNColorSpace//------------------------------------------------------------------------class GfxDeviceNColorSpace: public GfxColorSpace {public:  GfxDeviceNColorSpace(int nComps, GfxColorSpace *alt, Function *func);  virtual ~GfxDeviceNColorSpace();  virtual GfxColorSpace *copy();  virtual GfxColorSpaceMode getMode() { return csDeviceN; }  // Construct a DeviceN color space.  Returns NULL if unsuccessful.  static GfxColorSpace *parse(Array *arr);  virtual void getGray(GfxColor *color, double *gray);  virtual void getRGB(GfxColor *color, GfxRGB *rgb);  virtual void getCMYK(GfxColor *color, GfxCMYK *cmyk);  virtual int getNComps() { return nComps; }  // DeviceN-specific access.  GString *getColorantName(int i) { return names[i]; }  GfxColorSpace *getAlt() { return alt; }  Function *getTintTransformFunc() { return func; }private:  int nComps;			// number of components  GString			// colorant names    *names[gfxColorMaxComps];  GfxColorSpace *alt;		// alternate color space  Function *func;		// tint transform (into alternate color space)  };//------------------------------------------------------------------------// GfxPatternColorSpace//------------------------------------------------------------------------class GfxPatternColorSpace: public GfxColorSpace {public:  GfxPatternColorSpace(GfxColorSpace *underA);  virtual ~GfxPatternColorSpace();  virtual GfxColorSpace *copy();  virtual GfxColorSpaceMode getMode() { return csPattern; }  // Construct a Pattern color space.  Returns NULL if unsuccessful.  static GfxColorSpace *parse(Array *arr);  virtual void getGray(GfxColor *color, double *gray);  virtual void getRGB(GfxColor *color, GfxRGB *rgb);  virtual void getCMYK(GfxColor *color, GfxCMYK *cmyk);  virtual int getNComps() { return 0; }  // Pattern-specific access.  GfxColorSpace *getUnder() { return under; }private:  GfxColorSpace *under;		// underlying color space (for uncolored				//   patterns)};//------------------------------------------------------------------------// GfxPattern//------------------------------------------------------------------------class GfxPattern {public:  GfxPattern(int typeA);  virtual ~GfxPattern();  static GfxPattern *parse(Object *obj);  virtual GfxPattern *copy() = 0;  int getType() { return type; }private:  int type;};//------------------------------------------------------------------------// GfxTilingPattern//------------------------------------------------------------------------

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -