// This hack is only necessary for an external jpeg library, the builtin one
// usually used on Windows doesn't use the type boolean, so always works.
//
-#if defined wxHACK_BOOLEAN || defined __RPCNDR_H__ || defined __WINE_RPCNDR_H
+#ifdef wxHACK_BOOLEAN
#define HAVE_BOOLEAN
-
- #ifdef wxHACK_BOOLEAN
- #define boolean wxHACK_BOOLEAN
- #else
- #define boolean int
- #endif
+ #define boolean wxHACK_BOOLEAN
#endif
extern "C"
jpeg_set_quality(&cinfo, image->GetOptionInt(wxIMAGE_OPTION_QUALITY), TRUE);
// set the resolution fields in the output file
- UINT16 resX,
- resY;
- if ( image->HasOption(wxIMAGE_OPTION_RESOLUTIONX) &&
- image->HasOption(wxIMAGE_OPTION_RESOLUTIONY) )
- {
- resX = (UINT16)image->GetOptionInt(wxIMAGE_OPTION_RESOLUTIONX);
- resY = (UINT16)image->GetOptionInt(wxIMAGE_OPTION_RESOLUTIONY);
- }
- else if ( image->HasOption(wxIMAGE_OPTION_RESOLUTION) )
- {
- resX =
- resY = (UINT16)image->GetOptionInt(wxIMAGE_OPTION_RESOLUTION);
- }
- else
- {
- resX =
- resY = 0;
- }
-
- if ( resX && resY )
+ int resX, resY;
+ wxImageResolution res = GetResolutionFromOptions(*image, &resX, &resY);
+ if ( res != wxIMAGE_RESOLUTION_NONE )
{
cinfo.X_density = resX;
cinfo.Y_density = resY;
- }
- // 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 = (UINT8)image->GetOptionInt(wxIMAGE_OPTION_RESOLUTIONUNIT);
+ // it so happens that wxIMAGE_RESOLUTION_INCHES/CM values are the same
+ // ones as used by libjpeg, so we can assign them directly
+ cinfo.density_unit = res;
}
jpeg_start_compress(&cinfo, TRUE);