// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
#pragma implementation "imagjpeg.h"
#endif
extern "C"
{
+ #if defined(__WXMSW__)
+ #define XMD_H
+ #endif
#include "jpeglib.h"
}
cinfo->src = (struct jpeg_source_mgr *)
(*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_PERMANENT,
sizeof(my_source_mgr));
- src = (my_src_ptr) cinfo->src;
}
src = (my_src_ptr) cinfo->src;
src->pub.bytes_in_buffer = 0; /* forces fill_input_buffer on first read */
if (image->HasOption(wxT("quality")))
jpeg_set_quality(&cinfo, image->GetOptionInt(wxT("quality")), TRUE);
+ // sets the resolution fields in the output file
+ if (image->HasOption(wxIMAGE_OPTION_RESOLUTION))
+ {
+ cinfo.X_density =
+ cinfo.Y_density = image->GetOptionInt(wxIMAGE_OPTION_RESOLUTION);
+ }
+
+ // sets the resolution unit field in the output file
+ // wxIMAGE_RESOLUTION_INCHES for inches
+ // wxIMAGE_RESOLUTION_CM for centimeters
+ if (image->HasOption(wxIMAGE_OPTION_RESOLUTIONUNIT))
+ {
+ cinfo.density_unit = image->GetOptionInt(wxIMAGE_OPTION_RESOLUTIONUNIT);
+ }
+
jpeg_start_compress(&cinfo, TRUE);
stride = cinfo.image_width * 3; /* JSAMPLEs per row in image_buffer */