[gimp] plug-ins: fix #7086 Can't remove color space from a 1bit monochrome palette
- From: Jacob Boerema <jboerema src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] plug-ins: fix #7086 Can't remove color space from a 1bit monochrome palette
- Date: Tue, 3 Aug 2021 19:45:19 +0000 (UTC)
commit 2329fc165675d3524f476d098c67804bbcf583b2
Author: Jacob Boerema <jgboerema gmail com>
Date: Tue Aug 3 14:51:15 2021 -0400
plug-ins: fix #7086 Can't remove color space from a 1bit monochrome palette
For 1-bit BMP export we did not show the save dialog, making it
impossible to change settings interactively.
We enable the save dialog for 1-bit too, making sure to disable RLE, which
is not available for 1-bit.
In addition, also set the RLE config option to false for all cases where
it can't be used.
plug-ins/file-bmp/bmp-save.c | 26 ++++++++++++++++++--------
1 file changed, 18 insertions(+), 8 deletions(-)
---
diff --git a/plug-ins/file-bmp/bmp-save.c b/plug-ins/file-bmp/bmp-save.c
index 0a534accf3..3dbd8f2310 100644
--- a/plug-ins/file-bmp/bmp-save.c
+++ b/plug-ins/file-bmp/bmp-save.c
@@ -68,7 +68,8 @@ static void write_image (FILE *f,
static gboolean save_dialog (GimpProcedure *procedure,
GObject *config,
- gint channels);
+ gint channels,
+ gint bpp);
static void
@@ -166,6 +167,7 @@ save_image (GFile *file,
g_object_set (config,
"rgb-format", RGBA_8888,
+ "use-rle", FALSE,
NULL);
break;
@@ -178,6 +180,7 @@ save_image (GFile *file,
g_object_set (config,
"rgb-format", RGBA_8888,
+ "use-rle", FALSE,
NULL);
break;
@@ -238,7 +241,12 @@ save_image (GFile *file,
else if (colors > 2)
BitsPerPixel = 4;
else
- BitsPerPixel = 1;
+ {
+ BitsPerPixel = 1;
+ g_object_set (config,
+ "use-rle", FALSE,
+ NULL);
+ }
for (i = 0; i < colors; i++)
{
@@ -256,9 +264,10 @@ save_image (GFile *file,
if (run_mode == GIMP_RUN_INTERACTIVE &&
(BitsPerPixel == 8 ||
- BitsPerPixel == 4))
+ BitsPerPixel == 4 ||
+ BitsPerPixel == 1))
{
- if (! save_dialog (procedure, config, 1))
+ if (! save_dialog (procedure, config, 1, BitsPerPixel))
return GIMP_PDB_CANCEL;
}
else if (BitsPerPixel == 24 ||
@@ -266,7 +275,7 @@ save_image (GFile *file,
{
if (run_mode == GIMP_RUN_INTERACTIVE)
{
- if (! save_dialog (procedure, config, channels))
+ if (! save_dialog (procedure, config, channels, BitsPerPixel))
return GIMP_PDB_CANCEL;
}
@@ -722,7 +731,7 @@ write_image (FILE *f,
else
{
/* now it gets more difficult */
- if (! use_run_length_encoding)
+ if (! use_run_length_encoding || bpp == 1)
{
/* uncompressed 1,4 and 8 bit */
@@ -958,7 +967,8 @@ config_notify (GObject *config,
static gboolean
save_dialog (GimpProcedure *procedure,
GObject *config,
- gint channels)
+ gint channels,
+ gint bpp)
{
GtkWidget *dialog;
GtkWidget *toggle;
@@ -985,7 +995,7 @@ save_dialog (GimpProcedure *procedure,
_("_Run-Length Encoded"));
gtk_box_pack_start (GTK_BOX (vbox), toggle, FALSE, FALSE, 0);
- if (channels > 1)
+ if (channels > 1 || bpp == 1)
gtk_widget_set_sensitive (toggle, FALSE);
/* Compatibility Options */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]