added support for image resolution options to PNG handler (heavily modified patch 1704128)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45567 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -414,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);
|
||||
|
Reference in New Issue
Block a user