summaryrefslogtreecommitdiff
path: root/Build/source/libs/poppler/poppler-0.26.4/goo/JpegWriter.cc
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/libs/poppler/poppler-0.26.4/goo/JpegWriter.cc')
-rw-r--r--Build/source/libs/poppler/poppler-0.26.4/goo/JpegWriter.cc184
1 files changed, 0 insertions, 184 deletions
diff --git a/Build/source/libs/poppler/poppler-0.26.4/goo/JpegWriter.cc b/Build/source/libs/poppler/poppler-0.26.4/goo/JpegWriter.cc
deleted file mode 100644
index 9b7c5051838..00000000000
--- a/Build/source/libs/poppler/poppler-0.26.4/goo/JpegWriter.cc
+++ /dev/null
@@ -1,184 +0,0 @@
-//========================================================================
-//
-// JpegWriter.cc
-//
-// This file is licensed under the GPLv2 or later
-//
-// Copyright (C) 2009 Stefan Thomas <thomas@eload24.com>
-// Copyright (C) 2010, 2012 Adrian Johnson <ajohnson@redneon.com>
-// Copyright (C) 2010 Harry Roberts <harry.roberts@midnight-labs.org>
-// Copyright (C) 2011 Thomas Freitag <Thomas.Freitag@alfa.de>
-// Copyright (C) 2013 Peter Breitenlohner <peb@mppmu.mpg.de>
-//
-//========================================================================
-
-#include "JpegWriter.h"
-
-#ifdef ENABLE_LIBJPEG
-
-extern "C" {
-#include <jpeglib.h>
-}
-
-#include "poppler/Error.h"
-
-struct JpegWriterPrivate {
- bool progressive;
- int quality;
- JpegWriter::Format format;
- struct jpeg_compress_struct cinfo;
- struct jpeg_error_mgr jerr;
-};
-
-void outputMessage(j_common_ptr cinfo)
-{
- char buffer[JMSG_LENGTH_MAX];
-
- // Create the message
- (*cinfo->err->format_message) (cinfo, buffer);
-
- // Send it to poppler's error handler
- error(errInternal, -1, "{0:s}", buffer);
-}
-
-JpegWriter::JpegWriter(int q, bool p, Format formatA)
-{
- priv = new JpegWriterPrivate;
- priv->progressive = p;
- priv->quality = q;
- priv->format = formatA;
-}
-
-JpegWriter::JpegWriter(Format formatA)
-{
- priv = new JpegWriterPrivate;
- priv->progressive = false;
- priv->quality = -1;
- priv->format = formatA;
-}
-
-JpegWriter::~JpegWriter()
-{
- // cleanup
- jpeg_destroy_compress(&priv->cinfo);
- delete priv;
-}
-
-bool JpegWriter::init(FILE *f, int width, int height, int hDPI, int vDPI)
-{
- // Setup error handler
- priv->cinfo.err = jpeg_std_error(&priv->jerr);
- priv->jerr.output_message = &outputMessage;
-
- // Initialize libjpeg
- jpeg_create_compress(&priv->cinfo);
-
- // First set colorspace and call jpeg_set_defaults() since
- // jpeg_set_defaults() sets default values for all fields in
- // cinfo based on the colorspace.
- switch (priv->format) {
- case RGB:
- priv->cinfo.in_color_space = JCS_RGB;
- break;
- case GRAY:
- priv->cinfo.in_color_space = JCS_GRAYSCALE;
- break;
- case CMYK:
- priv->cinfo.in_color_space = JCS_CMYK;
- break;
- default:
- return false;
- }
- jpeg_set_defaults(&priv->cinfo);
-
- // Set destination file
- jpeg_stdio_dest(&priv->cinfo, f);
-
- // Set libjpeg configuration
- priv->cinfo.image_width = width;
- priv->cinfo.image_height = height;
- priv->cinfo.density_unit = 1; // dots per inch
- priv->cinfo.X_density = hDPI;
- priv->cinfo.Y_density = vDPI;
- switch (priv->format) {
- case GRAY:
- priv->cinfo.input_components = 1;
- break;
- case RGB:
- priv->cinfo.input_components = 3;
- break;
- case CMYK:
- priv->cinfo.input_components = 4;
- jpeg_set_colorspace(&priv->cinfo, JCS_YCCK);
- priv->cinfo.write_JFIF_header = TRUE;
- break;
- default:
- return false;
- }
-
- // Set quality
- if (priv->quality >= 0 && priv->quality <= 100) {
- jpeg_set_quality(&priv->cinfo, priv->quality, TRUE);
- }
-
- // Use progressive mode
- if (priv->progressive) {
- jpeg_simple_progression(&priv->cinfo);
- }
-
- // Get ready for data
- jpeg_start_compress(&priv->cinfo, TRUE);
-
- return true;
-}
-
-bool JpegWriter::writePointers(unsigned char **rowPointers, int rowCount)
-{
- if (priv->format == CMYK) {
- for (int y = 0; y < rowCount; y++) {
- unsigned char *row = rowPointers[y];
- for (unsigned int x = 0; x < priv->cinfo.image_width; x++) {
- for (int n = 0; n < 4; n++) {
- *row = 0xff - *row;
- row++;
- }
- }
- }
- }
- // Write all rows to the file
- jpeg_write_scanlines(&priv->cinfo, rowPointers, rowCount);
-
- return true;
-}
-
-bool JpegWriter::writeRow(unsigned char **rowPointer)
-{
- if (priv->format == CMYK) {
- unsigned char *row = rowPointer[0];
- for (unsigned int x = 0; x < priv->cinfo.image_width; x++) {
- for (int n = 0; n < 4; n++) {
- *row = 0xff - *row;
- row++;
- }
- }
- }
- // Write the row to the file
- jpeg_write_scanlines(&priv->cinfo, rowPointer, 1);
-
- return true;
-}
-
-bool JpegWriter::close()
-{
- jpeg_finish_compress(&priv->cinfo);
-
- return true;
-}
-
-bool JpegWriter::supportCMYK()
-{
- return priv->format == CMYK;
-}
-
-
-#endif