applied a (slightly modified) patch from keith@goatman.me.uk, fixing a

2004-01-08  Raphaël Quinet  <quinet@gamers.org>

	* plug-ins/common/jpeg.c: applied a (slightly modified) patch from
	keith@goatman.me.uk, fixing a problem with the save dialog for
	grayscale images and a small rounding error in the JPEG quality
	level.  Fixes bug #130912.
This commit is contained in:
Raphaël Quinet 2004-01-08 22:53:38 +00:00 committed by Raphaël Quinet
parent f2c121b9b2
commit 8e6ce45355
8 changed files with 49 additions and 35 deletions

View File

@ -1,3 +1,10 @@
2004-01-08 Raphaël Quinet <quinet@gamers.org>
* plug-ins/common/jpeg.c: applied a (slightly modified) patch from
keith@goatman.me.uk, fixing a problem with the save dialog for
grayscale images and a small rounding error in the JPEG quality
level. Fixes bug #130912.
2004-01-08 Henrik Brix Andersen <brix@gimp.org>
* app/config/gimpdisplayconfig.c: added %D* to

View File

@ -1347,7 +1347,8 @@ save_image (const gchar *filename,
*/
jpeg_set_defaults (&cinfo);
jpeg_set_quality (&cinfo, (gint) (jsvals.quality * 100), jsvals.baseline);
jpeg_set_quality (&cinfo, (gint) ((jsvals.quality + 0.005) * 100),
jsvals.baseline);
cinfo.smoothing_factor = (gint) (jsvals.smoothing * 100);
cinfo.optimize_coding = jsvals.optimize;
@ -1892,6 +1893,10 @@ save_dialog (void)
1.0, 0.5,
menu, 1, FALSE);
dtype = gimp_drawable_type (drawable_ID_global);
if (dtype != GIMP_RGB_IMAGE && dtype != GIMP_RGBA_IMAGE)
gtk_widget_set_sensitive (menu, FALSE);
/* DCT method */
menu =
gimp_int_option_menu_new (FALSE,
@ -1909,10 +1914,6 @@ save_dialog (void)
1.0, 0.5,
menu, 1, FALSE);
dtype = gimp_drawable_type (drawable_ID_global);
if (dtype != GIMP_RGB_IMAGE && dtype != GIMP_RGBA_IMAGE)
gtk_widget_set_sensitive (menu, FALSE);
com_frame = gtk_frame_new (_("Image comments"));
gtk_box_pack_start (GTK_BOX (main_vbox), com_frame, TRUE, TRUE, 0);

View File

@ -1347,7 +1347,8 @@ save_image (const gchar *filename,
*/
jpeg_set_defaults (&cinfo);
jpeg_set_quality (&cinfo, (gint) (jsvals.quality * 100), jsvals.baseline);
jpeg_set_quality (&cinfo, (gint) ((jsvals.quality + 0.005) * 100),
jsvals.baseline);
cinfo.smoothing_factor = (gint) (jsvals.smoothing * 100);
cinfo.optimize_coding = jsvals.optimize;
@ -1892,6 +1893,10 @@ save_dialog (void)
1.0, 0.5,
menu, 1, FALSE);
dtype = gimp_drawable_type (drawable_ID_global);
if (dtype != GIMP_RGB_IMAGE && dtype != GIMP_RGBA_IMAGE)
gtk_widget_set_sensitive (menu, FALSE);
/* DCT method */
menu =
gimp_int_option_menu_new (FALSE,
@ -1909,10 +1914,6 @@ save_dialog (void)
1.0, 0.5,
menu, 1, FALSE);
dtype = gimp_drawable_type (drawable_ID_global);
if (dtype != GIMP_RGB_IMAGE && dtype != GIMP_RGBA_IMAGE)
gtk_widget_set_sensitive (menu, FALSE);
com_frame = gtk_frame_new (_("Image comments"));
gtk_box_pack_start (GTK_BOX (main_vbox), com_frame, TRUE, TRUE, 0);

View File

@ -1347,7 +1347,8 @@ save_image (const gchar *filename,
*/
jpeg_set_defaults (&cinfo);
jpeg_set_quality (&cinfo, (gint) (jsvals.quality * 100), jsvals.baseline);
jpeg_set_quality (&cinfo, (gint) ((jsvals.quality + 0.005) * 100),
jsvals.baseline);
cinfo.smoothing_factor = (gint) (jsvals.smoothing * 100);
cinfo.optimize_coding = jsvals.optimize;
@ -1892,6 +1893,10 @@ save_dialog (void)
1.0, 0.5,
menu, 1, FALSE);
dtype = gimp_drawable_type (drawable_ID_global);
if (dtype != GIMP_RGB_IMAGE && dtype != GIMP_RGBA_IMAGE)
gtk_widget_set_sensitive (menu, FALSE);
/* DCT method */
menu =
gimp_int_option_menu_new (FALSE,
@ -1909,10 +1914,6 @@ save_dialog (void)
1.0, 0.5,
menu, 1, FALSE);
dtype = gimp_drawable_type (drawable_ID_global);
if (dtype != GIMP_RGB_IMAGE && dtype != GIMP_RGBA_IMAGE)
gtk_widget_set_sensitive (menu, FALSE);
com_frame = gtk_frame_new (_("Image comments"));
gtk_box_pack_start (GTK_BOX (main_vbox), com_frame, TRUE, TRUE, 0);

View File

@ -1347,7 +1347,8 @@ save_image (const gchar *filename,
*/
jpeg_set_defaults (&cinfo);
jpeg_set_quality (&cinfo, (gint) (jsvals.quality * 100), jsvals.baseline);
jpeg_set_quality (&cinfo, (gint) ((jsvals.quality + 0.005) * 100),
jsvals.baseline);
cinfo.smoothing_factor = (gint) (jsvals.smoothing * 100);
cinfo.optimize_coding = jsvals.optimize;
@ -1892,6 +1893,10 @@ save_dialog (void)
1.0, 0.5,
menu, 1, FALSE);
dtype = gimp_drawable_type (drawable_ID_global);
if (dtype != GIMP_RGB_IMAGE && dtype != GIMP_RGBA_IMAGE)
gtk_widget_set_sensitive (menu, FALSE);
/* DCT method */
menu =
gimp_int_option_menu_new (FALSE,
@ -1909,10 +1914,6 @@ save_dialog (void)
1.0, 0.5,
menu, 1, FALSE);
dtype = gimp_drawable_type (drawable_ID_global);
if (dtype != GIMP_RGB_IMAGE && dtype != GIMP_RGBA_IMAGE)
gtk_widget_set_sensitive (menu, FALSE);
com_frame = gtk_frame_new (_("Image comments"));
gtk_box_pack_start (GTK_BOX (main_vbox), com_frame, TRUE, TRUE, 0);

View File

@ -1347,7 +1347,8 @@ save_image (const gchar *filename,
*/
jpeg_set_defaults (&cinfo);
jpeg_set_quality (&cinfo, (gint) (jsvals.quality * 100), jsvals.baseline);
jpeg_set_quality (&cinfo, (gint) ((jsvals.quality + 0.005) * 100),
jsvals.baseline);
cinfo.smoothing_factor = (gint) (jsvals.smoothing * 100);
cinfo.optimize_coding = jsvals.optimize;
@ -1892,6 +1893,10 @@ save_dialog (void)
1.0, 0.5,
menu, 1, FALSE);
dtype = gimp_drawable_type (drawable_ID_global);
if (dtype != GIMP_RGB_IMAGE && dtype != GIMP_RGBA_IMAGE)
gtk_widget_set_sensitive (menu, FALSE);
/* DCT method */
menu =
gimp_int_option_menu_new (FALSE,
@ -1909,10 +1914,6 @@ save_dialog (void)
1.0, 0.5,
menu, 1, FALSE);
dtype = gimp_drawable_type (drawable_ID_global);
if (dtype != GIMP_RGB_IMAGE && dtype != GIMP_RGBA_IMAGE)
gtk_widget_set_sensitive (menu, FALSE);
com_frame = gtk_frame_new (_("Image comments"));
gtk_box_pack_start (GTK_BOX (main_vbox), com_frame, TRUE, TRUE, 0);

View File

@ -1347,7 +1347,8 @@ save_image (const gchar *filename,
*/
jpeg_set_defaults (&cinfo);
jpeg_set_quality (&cinfo, (gint) (jsvals.quality * 100), jsvals.baseline);
jpeg_set_quality (&cinfo, (gint) ((jsvals.quality + 0.005) * 100),
jsvals.baseline);
cinfo.smoothing_factor = (gint) (jsvals.smoothing * 100);
cinfo.optimize_coding = jsvals.optimize;
@ -1892,6 +1893,10 @@ save_dialog (void)
1.0, 0.5,
menu, 1, FALSE);
dtype = gimp_drawable_type (drawable_ID_global);
if (dtype != GIMP_RGB_IMAGE && dtype != GIMP_RGBA_IMAGE)
gtk_widget_set_sensitive (menu, FALSE);
/* DCT method */
menu =
gimp_int_option_menu_new (FALSE,
@ -1909,10 +1914,6 @@ save_dialog (void)
1.0, 0.5,
menu, 1, FALSE);
dtype = gimp_drawable_type (drawable_ID_global);
if (dtype != GIMP_RGB_IMAGE && dtype != GIMP_RGBA_IMAGE)
gtk_widget_set_sensitive (menu, FALSE);
com_frame = gtk_frame_new (_("Image comments"));
gtk_box_pack_start (GTK_BOX (main_vbox), com_frame, TRUE, TRUE, 0);

View File

@ -1347,7 +1347,8 @@ save_image (const gchar *filename,
*/
jpeg_set_defaults (&cinfo);
jpeg_set_quality (&cinfo, (gint) (jsvals.quality * 100), jsvals.baseline);
jpeg_set_quality (&cinfo, (gint) ((jsvals.quality + 0.005) * 100),
jsvals.baseline);
cinfo.smoothing_factor = (gint) (jsvals.smoothing * 100);
cinfo.optimize_coding = jsvals.optimize;
@ -1892,6 +1893,10 @@ save_dialog (void)
1.0, 0.5,
menu, 1, FALSE);
dtype = gimp_drawable_type (drawable_ID_global);
if (dtype != GIMP_RGB_IMAGE && dtype != GIMP_RGBA_IMAGE)
gtk_widget_set_sensitive (menu, FALSE);
/* DCT method */
menu =
gimp_int_option_menu_new (FALSE,
@ -1909,10 +1914,6 @@ save_dialog (void)
1.0, 0.5,
menu, 1, FALSE);
dtype = gimp_drawable_type (drawable_ID_global);
if (dtype != GIMP_RGB_IMAGE && dtype != GIMP_RGBA_IMAGE)
gtk_widget_set_sensitive (menu, FALSE);
com_frame = gtk_frame_new (_("Image comments"));
gtk_box_pack_start (GTK_BOX (main_vbox), com_frame, TRUE, TRUE, 0);