From 8e6ce4535559b754a5a580dbd69563694917c62a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Quinet?= Date: Thu, 8 Jan 2004 22:53:38 +0000 Subject: [PATCH] applied a (slightly modified) patch from keith@goatman.me.uk, fixing a MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 2004-01-08 Raphaël Quinet * 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. --- ChangeLog | 7 +++++++ plug-ins/common/jpeg.c | 11 ++++++----- plug-ins/jpeg/jpeg-load.c | 11 ++++++----- plug-ins/jpeg/jpeg-load.h | 11 ++++++----- plug-ins/jpeg/jpeg-save.c | 11 ++++++----- plug-ins/jpeg/jpeg-save.h | 11 ++++++----- plug-ins/jpeg/jpeg.c | 11 ++++++----- plug-ins/jpeg/jpeg.h | 11 ++++++----- 8 files changed, 49 insertions(+), 35 deletions(-) diff --git a/ChangeLog b/ChangeLog index a8a24e1830..4c1cf8408b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2004-01-08 Raphaël Quinet + + * 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 * app/config/gimpdisplayconfig.c: added %D* to diff --git a/plug-ins/common/jpeg.c b/plug-ins/common/jpeg.c index 9d05aebcb5..d4b3a3e1ff 100644 --- a/plug-ins/common/jpeg.c +++ b/plug-ins/common/jpeg.c @@ -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); diff --git a/plug-ins/jpeg/jpeg-load.c b/plug-ins/jpeg/jpeg-load.c index 9d05aebcb5..d4b3a3e1ff 100644 --- a/plug-ins/jpeg/jpeg-load.c +++ b/plug-ins/jpeg/jpeg-load.c @@ -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); diff --git a/plug-ins/jpeg/jpeg-load.h b/plug-ins/jpeg/jpeg-load.h index 9d05aebcb5..d4b3a3e1ff 100644 --- a/plug-ins/jpeg/jpeg-load.h +++ b/plug-ins/jpeg/jpeg-load.h @@ -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); diff --git a/plug-ins/jpeg/jpeg-save.c b/plug-ins/jpeg/jpeg-save.c index 9d05aebcb5..d4b3a3e1ff 100644 --- a/plug-ins/jpeg/jpeg-save.c +++ b/plug-ins/jpeg/jpeg-save.c @@ -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); diff --git a/plug-ins/jpeg/jpeg-save.h b/plug-ins/jpeg/jpeg-save.h index 9d05aebcb5..d4b3a3e1ff 100644 --- a/plug-ins/jpeg/jpeg-save.h +++ b/plug-ins/jpeg/jpeg-save.h @@ -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); diff --git a/plug-ins/jpeg/jpeg.c b/plug-ins/jpeg/jpeg.c index 9d05aebcb5..d4b3a3e1ff 100644 --- a/plug-ins/jpeg/jpeg.c +++ b/plug-ins/jpeg/jpeg.c @@ -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); diff --git a/plug-ins/jpeg/jpeg.h b/plug-ins/jpeg/jpeg.h index 9d05aebcb5..d4b3a3e1ff 100644 --- a/plug-ins/jpeg/jpeg.h +++ b/plug-ins/jpeg/jpeg.h @@ -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);