goo/JpegWriter.cc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)
New commits: commit c6429072f9ce9a934b24d3c42ae03e2b34d35873 Author: Adrian Johnson <[email protected]> Date: Wed Jan 25 22:44:27 2012 +1030 jpeg: set image parameters after jpeg_set_defaults() so the resolution does not get overwritten by the defaults. The libjpeg documentation for jpeg_set_defaults() states: "This routine sets all JPEG parameters to reasonable defaults, using only the input image's color space (field in_color_space, which must already be set in cinfo)" Bug 45224 diff --git a/goo/JpegWriter.cc b/goo/JpegWriter.cc index 7ed5d52..aa11d8a 100644 --- a/goo/JpegWriter.cc +++ b/goo/JpegWriter.cc @@ -53,6 +53,10 @@ bool JpegWriter::init(FILE *f, int width, int height, int hDPI, int vDPI) // Initialize libjpeg jpeg_create_compress(&cinfo); + // Set colorspace and initialise defaults + cinfo.in_color_space = colorMode; /* colorspace of input image */ + jpeg_set_defaults(&cinfo); + // Set destination file jpeg_stdio_dest(&cinfo, f); @@ -62,7 +66,6 @@ bool JpegWriter::init(FILE *f, int width, int height, int hDPI, int vDPI) cinfo.density_unit = 1; // dots per inch cinfo.X_density = hDPI; cinfo.Y_density = vDPI; - cinfo.in_color_space = colorMode; /* colorspace of input image */ /* # of color components per pixel */ switch (colorMode) { case JCS_GRAYSCALE: @@ -77,7 +80,6 @@ bool JpegWriter::init(FILE *f, int width, int height, int hDPI, int vDPI) default: return false; } - jpeg_set_defaults(&cinfo); if (cinfo.in_color_space == JCS_CMYK) { jpeg_set_colorspace(&cinfo, JCS_YCCK); cinfo.write_JFIF_header = TRUE; _______________________________________________ poppler mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/poppler
