added resolution option to JPEG handler (patch #833234)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@24374 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -93,6 +93,7 @@ All (GUI):
|
|||||||
- bug in wxWindow::RemoveEventHandler() fixed (Yingjun Zhang)
|
- bug in wxWindow::RemoveEventHandler() fixed (Yingjun Zhang)
|
||||||
- make it possible to use wxRTTI macros with namespaces (Benjamin I. Williams)
|
- make it possible to use wxRTTI macros with namespaces (Benjamin I. Williams)
|
||||||
- wxColourDatabase API now uses objects instead of pointers
|
- wxColourDatabase API now uses objects instead of pointers
|
||||||
|
- added resolution option to JPEG image handler (Jeff Burton)
|
||||||
|
|
||||||
wxMSW:
|
wxMSW:
|
||||||
|
|
||||||
|
@@ -16,6 +16,16 @@
|
|||||||
|
|
||||||
#include "wx/image.h"
|
#include "wx/image.h"
|
||||||
|
|
||||||
|
// defines for wxImage::SetOption
|
||||||
|
#define wxIMAGE_OPTION_RESOLUTION wxString(_T("Resolution"))
|
||||||
|
#define wxIMAGE_OPTION_RESOLUTIONUNIT wxString(_T("ResolutionUnit"))
|
||||||
|
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
wxIMAGE_RESOLUTION_INCHES = 1,
|
||||||
|
wxIMAGE_RESOLUTION_CM = 2
|
||||||
|
};
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// wxJPEGHandler
|
// wxJPEGHandler
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
@@ -356,6 +356,21 @@ bool wxJPEGHandler::SaveFile( wxImage *image, wxOutputStream& stream, bool verbo
|
|||||||
if (image->HasOption(wxT("quality")))
|
if (image->HasOption(wxT("quality")))
|
||||||
jpeg_set_quality(&cinfo, image->GetOptionInt(wxT("quality")), TRUE);
|
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);
|
jpeg_start_compress(&cinfo, TRUE);
|
||||||
|
|
||||||
stride = cinfo.image_width * 3; /* JSAMPLEs per row in image_buffer */
|
stride = cinfo.image_width * 3; /* JSAMPLEs per row in image_buffer */
|
||||||
|
Reference in New Issue
Block a user