summaryrefslogtreecommitdiff
path: root/Build/source/libs/poppler/poppler-0.18.4/goo/PNGWriter.h
diff options
context:
space:
mode:
authorPeter Breitenlohner <peb@mppmu.mpg.de>2012-02-23 10:27:56 +0000
committerPeter Breitenlohner <peb@mppmu.mpg.de>2012-02-23 10:27:56 +0000
commit9fbfe507d0f9d90df2880e61eb4e5280206ae6b9 (patch)
tree889986f162ee830547e15a8b0d4c6e12613b0f03 /Build/source/libs/poppler/poppler-0.18.4/goo/PNGWriter.h
parent244a7062d4b2b6d10c769244d2c7e1f57de39018 (diff)
poppler 0.18.4
git-svn-id: svn://tug.org/texlive/trunk@25482 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/libs/poppler/poppler-0.18.4/goo/PNGWriter.h')
-rw-r--r--Build/source/libs/poppler/poppler-0.18.4/goo/PNGWriter.h63
1 files changed, 63 insertions, 0 deletions
diff --git a/Build/source/libs/poppler/poppler-0.18.4/goo/PNGWriter.h b/Build/source/libs/poppler/poppler-0.18.4/goo/PNGWriter.h
new file mode 100644
index 00000000000..f22495d0d00
--- /dev/null
+++ b/Build/source/libs/poppler/poppler-0.18.4/goo/PNGWriter.h
@@ -0,0 +1,63 @@
+//========================================================================
+//
+// PNGWriter.h
+//
+// This file is licensed under the GPLv2 or later
+//
+// Copyright (C) 2009 Warren Toomey <wkt@tuhs.org>
+// Copyright (C) 2009 Shen Liang <shenzhuxi@gmail.com>
+// Copyright (C) 2009, 2011 Albert Astals Cid <aacid@kde.org>
+// Copyright (C) 2009 Stefan Thomas <thomas@eload24.com>
+// Copyright (C) 2010, 2011 Adrian Johnson <ajohnson@redneon.com>
+//
+//========================================================================
+
+#ifndef PNGWRITER_H
+#define PNGWRITER_H
+
+#include "poppler/poppler-config.h"
+
+#ifdef ENABLE_LIBPNG
+
+#include <cstdio>
+#include <png.h>
+#include "ImgWriter.h"
+
+class PNGWriter : public ImgWriter
+{
+ public:
+
+ /* RGB - 3 bytes/pixel
+ * RGBA - 4 bytes/pixel
+ * GRAY - 1 byte/pixel
+ * MONOCHROME - 1 byte/pixel. PNGWriter will bitpack to 8 pixels/byte
+ */
+ enum Format { RGB, RGBA, GRAY, MONOCHROME };
+
+ PNGWriter(Format format = RGB);
+ ~PNGWriter();
+
+ void setICCProfile(const char *name, unsigned char *data, int size);
+ void setSRGBProfile();
+
+
+ bool init(FILE *f, int width, int height, int hDPI, int vDPI);
+
+ bool writePointers(unsigned char **rowPointers, int rowCount);
+ bool writeRow(unsigned char **row);
+
+ bool close();
+
+ private:
+ Format format;
+ png_structp png_ptr;
+ png_infop info_ptr;
+ unsigned char *icc_data;
+ int icc_data_size;
+ char *icc_name;
+ bool sRGB_profile;
+};
+
+#endif
+
+#endif