| //======================================================================== |
| // |
| // ImageOutputDev.h |
| // |
| // Copyright 1998-2003 Glyph & Cog, LLC |
| // |
| //======================================================================== |
| |
| //======================================================================== |
| // |
| // 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) 2006 Rainer Keller <class321@gmx.de> |
| // Copyright (C) 2008 Timothy Lee <timothy.lee@siriushk.com> |
| // Copyright (C) 2009 Carlos Garcia Campos <carlosgc@gnome.org> |
| // |
| // 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 IMAGEOUTPUTDEV_H |
| #define IMAGEOUTPUTDEV_H |
| |
| #include "poppler/poppler-config.h" |
| |
| #ifdef USE_GCC_PRAGMAS |
| #pragma interface |
| #endif |
| |
| #include <stdio.h> |
| #include "goo/gtypes.h" |
| #include "OutputDev.h" |
| |
| class GfxState; |
| |
| //------------------------------------------------------------------------ |
| // ImageOutputDev |
| //------------------------------------------------------------------------ |
| |
| class ImageOutputDev: public OutputDev { |
| public: |
| |
| // Create an OutputDev which will write images to files named |
| // <fileRoot>-NNN.<type>. Normally, all images are written as PBM |
| // (.pbm) or PPM (.ppm) files. If <dumpJPEG> is set, JPEG images are |
| // written as JPEG (.jpg) files. |
| ImageOutputDev(char *fileRootA, GBool dumpJPEGA); |
| |
| // Destructor. |
| virtual ~ImageOutputDev(); |
| |
| // Check if file was successfully created. |
| virtual GBool isOk() { return ok; } |
| |
| // Does this device use beginType3Char/endType3Char? Otherwise, |
| // text in Type 3 fonts will be drawn with drawChar/drawString. |
| virtual GBool interpretType3Chars() { return gFalse; } |
| |
| // Does this device need non-text content? |
| virtual GBool needNonText() { return gTrue; } |
| |
| //---- get info about output device |
| |
| // Does this device use upside-down coordinates? |
| // (Upside-down means (0,0) is the top left corner of the page.) |
| virtual GBool upsideDown() { return gTrue; } |
| |
| // Does this device use drawChar() or drawString()? |
| virtual GBool useDrawChar() { return gFalse; } |
| |
| //----- image drawing |
| virtual void drawImageMask(GfxState *state, Object *ref, Stream *str, |
| int width, int height, GBool invert, |
| GBool interpolate, GBool inlineImg); |
| virtual void drawImage(GfxState *state, Object *ref, Stream *str, |
| int width, int height, GfxImageColorMap *colorMap, |
| GBool interpolate, int *maskColors, GBool inlineImg); |
| virtual void drawMaskedImage(GfxState *state, Object *ref, Stream *str, |
| int width, int height, |
| GfxImageColorMap *colorMap, |
| GBool interpolate, |
| Stream *maskStr, int maskWidth, int maskHeight, |
| GBool maskInvert, GBool maskInterpolate); |
| virtual void drawSoftMaskedImage(GfxState *state, Object *ref, Stream *str, |
| int width, int height, |
| GfxImageColorMap *colorMap, |
| GBool interpolate, |
| Stream *maskStr, |
| int maskWidth, int maskHeight, |
| GfxImageColorMap *maskColorMap, |
| GBool maskInterpolate); |
| |
| private: |
| |
| char *fileRoot; // root of output file names |
| char *fileName; // buffer for output file names |
| GBool dumpJPEG; // set to dump native JPEG files |
| int imgNum; // current image number |
| GBool ok; // set up ok? |
| }; |
| |
| #endif |