diff options
Diffstat (limited to 'Build/source/libs/poppler/poppler-0.36.0/splash/SplashBitmap.h')
-rw-r--r-- | Build/source/libs/poppler/poppler-0.36.0/splash/SplashBitmap.h | 116 |
1 files changed, 116 insertions, 0 deletions
diff --git a/Build/source/libs/poppler/poppler-0.36.0/splash/SplashBitmap.h b/Build/source/libs/poppler/poppler-0.36.0/splash/SplashBitmap.h new file mode 100644 index 00000000000..4417af73375 --- /dev/null +++ b/Build/source/libs/poppler/poppler-0.36.0/splash/SplashBitmap.h @@ -0,0 +1,116 @@ +//======================================================================== +// +// SplashBitmap.h +// +//======================================================================== + +//======================================================================== +// +// Modified under the Poppler project - http://poppler.freedesktop.org +// +// All changes made under the Poppler project to this file are licensed +// under GPL version 2 or later +// +// Copyright (C) 2007 Ilmari Heikkinen <ilmari.heikkinen@gmail.com> +// Copyright (C) 2009 Shen Liang <shenzhuxi@gmail.com> +// Copyright (C) 2009, 2012 Albert Astals Cid <aacid@kde.org> +// Copyright (C) 2009 Stefan Thomas <thomas@eload24.com> +// Copyright (C) 2010 Adrian Johnson <ajohnson@redneon.com> +// Copyright (C) 2010 Harry Roberts <harry.roberts@midnight-labs.org> +// Copyright (C) 2010 Christian Feuersänger <cfeuersaenger@googlemail.com> +// Copyright (C) 2010 William Bader <williambader@hotmail.com> +// Copyright (C) 2012 Thomas Freitag <Thomas.Freitag@alfa.de> +// Copyright (C) 2015 Adam Reichold <adamreichold@myopera.com> +// +// To see a description of the changes please see the Changelog file that +// came with your tarball or type make ChangeLog if you are building from git +// +//======================================================================== + +#ifndef SPLASHBITMAP_H +#define SPLASHBITMAP_H + +#ifdef USE_GCC_PRAGMAS +#pragma interface +#endif + +#include "SplashTypes.h" +#include "poppler/GfxState.h" +#include <stdio.h> + +class ImgWriter; + +//------------------------------------------------------------------------ +// SplashBitmap +//------------------------------------------------------------------------ + +class SplashBitmap { +public: + + // Create a new bitmap. It will have <widthA> x <heightA> pixels in + // color mode <modeA>. Rows will be padded out to a multiple of + // <rowPad> bytes. If <topDown> is false, the bitmap will be stored + // upside-down, i.e., with the last row first in memory. + SplashBitmap(int widthA, int heightA, int rowPad, + SplashColorMode modeA, GBool alphaA, + GBool topDown = gTrue, GooList *separationList = NULL); + static SplashBitmap *copy(SplashBitmap *src); + + ~SplashBitmap(); + + int getWidth() { return width; } + int getHeight() { return height; } + int getRowSize() { return rowSize; } + int getAlphaRowSize() { return width; } + int getRowPad() { return rowPad; } + SplashColorMode getMode() { return mode; } + SplashColorPtr getDataPtr() { return data; } + Guchar *getAlphaPtr() { return alpha; } + GooList *getSeparationList() { return separationList; } + + SplashError writePNMFile(char *fileName); + SplashError writePNMFile(FILE *f); + SplashError writeAlphaPGMFile(char *fileName); + + SplashError writeImgFile(SplashImageFileFormat format, char *fileName, int hDPI, int vDPI, const char *compressionString = ""); + SplashError writeImgFile(SplashImageFileFormat format, FILE *f, int hDPI, int vDPI, const char *compressionString = ""); + SplashError writeImgFile(ImgWriter *writer, FILE *f, int hDPI, int vDPI); + + enum ConversionMode + { + conversionOpaque, + conversionAlpha, + conversionAlphaPremultiplied + }; + + GBool convertToXBGR(ConversionMode conversionMode = conversionOpaque); + + void getPixel(int x, int y, SplashColorPtr pixel); + void getRGBLine(int y, SplashColorPtr line); + void getXBGRLine(int y, SplashColorPtr line, ConversionMode conversionMode = conversionOpaque); +#if SPLASH_CMYK + void getCMYKLine(int y, SplashColorPtr line); +#endif + Guchar getAlpha(int x, int y); + + // Caller takes ownership of the bitmap data. The SplashBitmap + // object is no longer valid -- the next call should be to the + // destructor. + SplashColorPtr takeData(); + +private: + + int width, height; // size of bitmap + int rowPad; + int rowSize; // size of one row of data, in bytes + // - negative for bottom-up bitmaps + SplashColorMode mode; // color mode + SplashColorPtr data; // pointer to row zero of the color data + Guchar *alpha; // pointer to row zero of the alpha data + // (always top-down) + GooList *separationList; // list of spot colorants and their mapping functions + + friend class Splash; +}; + +#endif |