]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/imagjpeg.cpp
minor textual fix
[wxWidgets.git] / src / common / imagjpeg.cpp
index 0f3e5756fa2e1df80a9ea65387a29d4976885c1e..42b995aae9b664f0eacbe676ba1f53dd8b48d68b 100644 (file)
@@ -359,19 +359,38 @@ bool wxJPEGHandler::SaveFile( wxImage *image, wxOutputStream& stream, bool verbo
     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))
+    // set the resolution fields in the output file
+    UINT16 resX,
+           resY;
+    if ( image->HasOption(wxIMAGE_OPTION_RESOLUTIONX) &&
+         image->HasOption(wxIMAGE_OPTION_RESOLUTIONY) )
     {
-        cinfo.X_density =
-        cinfo.Y_density = image->GetOptionInt(wxIMAGE_OPTION_RESOLUTION);
+        resX = image->GetOptionInt(wxIMAGE_OPTION_RESOLUTIONX);
+        resY = image->GetOptionInt(wxIMAGE_OPTION_RESOLUTIONY);
+    }
+    else if ( image->HasOption(wxIMAGE_OPTION_RESOLUTION) )
+    {
+        resX =
+        resY = image->GetOptionInt(wxIMAGE_OPTION_RESOLUTION);
+    }
+    else
+    {
+        resX =
+        resY = 0;
+    }
+
+    if ( resX && resY )
+    {
+        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))
+    if ( image->HasOption(wxIMAGE_OPTION_RESOLUTIONUNIT) )
     {
-        cinfo.density_unit = image->GetOptionInt(wxIMAGE_OPTION_RESOLUTIONUNIT);
+        cinfo.density_unit = (UINT8)image->GetOptionInt(wxIMAGE_OPTION_RESOLUTIONUNIT);
     }
 
     jpeg_start_compress(&cinfo, TRUE);