X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a4cc2d0919408f8248516f768032944a55824a12..81c882b613b5d99ddb1e5ab69fcd7ebccc287025:/src/common/imagjpeg.cpp?ds=inline diff --git a/src/common/imagjpeg.cpp b/src/common/imagjpeg.cpp index 86f864b753..64cc2b859d 100644 --- a/src/common/imagjpeg.cpp +++ b/src/common/imagjpeg.cpp @@ -32,14 +32,9 @@ // 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" @@ -419,37 +414,16 @@ bool wxJPEGHandler::SaveFile( wxImage *image, wxOutputStream& stream, bool verbo 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);