gimp nie otwiera mi pliku bmp który przedstawia się tak:
$file /tmp/gconfd-kon/1.bmp
/tmp/gconfd-kon/1.bmp: PC bitmap data, Windows 3.x format, 2550 x 3508 x 8
w konsoli:
(...)
/usr/lib/gimp/2.0/plug-ins/bmp: fatal error: Naruszenie ochrony pamięci
w gimp-2.0.4 i 2.0.5 jest wszystko ok.
Co mogli spierniczyc, diff zrodeł w zalaczniku.
diff -urN gimp-2.0.5/plug-ins/bmp/Makefile.in gimp-2.0.6/plug-ins/bmp/Makefile.in
--- gimp-2.0.5/plug-ins/bmp/Makefile.in 2004-09-24 22:13:16.000000000 +0000
+++ gimp-2.0.6/plug-ins/bmp/Makefile.in 2004-11-02 19:04:38.000000000 +0000
@@ -163,6 +163,7 @@
HAVE_LCMS_FALSE = @HAVE_LCMS_FALSE@
HAVE_LCMS_TRUE = @HAVE_LCMS_TRUE@
HTML_DIR = @HTML_DIR@
+ICONV = @ICONV@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
@@ -173,6 +174,7 @@
INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@
INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@
INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@
INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@
INTLTOOL_MERGE = @INTLTOOL_MERGE@
INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@
@@ -222,6 +224,7 @@
MKINSTALLDIRS = @MKINSTALLDIRS@
MNG = @MNG@
MSGFMT = @MSGFMT@
+MSGMERGE = @MSGMERGE@
MS_LIB_AVAILABLE_FALSE = @MS_LIB_AVAILABLE_FALSE@
MS_LIB_AVAILABLE_TRUE = @MS_LIB_AVAILABLE_TRUE@
OBJDUMP = @OBJDUMP@
diff -urN gimp-2.0.5/plug-ins/bmp/bmpread.c gimp-2.0.6/plug-ins/bmp/bmpread.c
--- gimp-2.0.5/plug-ins/bmp/bmpread.c 2004-08-05 18:31:48.000000000 +0000
+++ gimp-2.0.6/plug-ins/bmp/bmpread.c 2004-11-02 19:02:56.000000000 +0000
@@ -413,18 +413,20 @@
gboolean grey,
const Bitmap_Channel *masks)
{
- guchar v, n;
- GimpPixelRgn pixel_rgn;
- gint xpos = 0;
- gint ypos = 0;
- gint32 image;
- gint32 layer;
- GimpDrawable *drawable;
- guchar *dest, *temp, *buffer;
- guchar gimp_cmap[768];
- gushort rgb;
- glong rowstride, channels;
- gint i, j, cur_progress, max_progress;
+ guchar v, n;
+ GimpPixelRgn pixel_rgn;
+ gint xpos = 0;
+ gint ypos = 0;
+ gint32 image;
+ gint32 layer;
+ GimpDrawable *drawable;
+ guchar *dest, *temp, *buffer;
+ guchar gimp_cmap[768];
+ gushort rgb;
+ glong rowstride, channels;
+ gint i, j, cur_progress, max_progress;
+ GimpImageBaseType base_type;
+ GimpImageType image_type;
if (! (compression == BI_RGB ||
(bpp == 8 && compression == BI_RLE8) ||
@@ -438,31 +440,44 @@
/* Make a new image in the gimp */
- if (bpp >= 16)
+ switch (bpp)
{
- image = gimp_image_new (width, height, GIMP_RGB);
- layer = gimp_layer_new (image, _("Background"),
- width, height,
- GIMP_RGB_IMAGE, 100, GIMP_NORMAL_MODE);
+ case 32:
+ case 24:
+ case 16:
+ base_type = GIMP_RGB;
+ image_type = GIMP_RGB_IMAGE;
+
channels = 3;
- }
- else if (grey)
- {
- image = gimp_image_new (width, height, GIMP_GRAY);
- layer = gimp_layer_new (image, _("Background"),
- width, height,
- GIMP_GRAY_IMAGE, 100, GIMP_NORMAL_MODE);
- channels = 1;
- }
- else
- {
- image = gimp_image_new (width, height, GIMP_INDEXED);
- layer = gimp_layer_new (image, _("Background"),
- width, height,
- GIMP_INDEXED_IMAGE, 100, GIMP_NORMAL_MODE);
+ break;
+
+ case 8:
+ case 4:
+ case 1:
+ if (grey)
+ {
+ base_type = GIMP_GRAY;
+ image_type = GIMP_RGB_IMAGE;
+ }
+ else
+ {
+ base_type = GIMP_INDEXED;
+ image_type = GIMP_INDEXED_IMAGE;
+ }
+
channels = 1;
+ break;
+
+ default:
+ g_message (_("Unrecognized or invalid BMP compression format."));
+ return -1;
}
+ image = gimp_image_new (width, height, base_type);
+ layer = gimp_layer_new (image, _("Background"),
+ width, height,
+ image_type, 100, GIMP_NORMAL_MODE);
+
gimp_image_set_filename (image, filename);
gimp_image_add_layer (image, layer, 0);
_______________________________________________
pld-devel-pl mailing list
[EMAIL PROTECTED]
http://lists.pld-linux.org/mailman/listinfo/pld-devel-pl