summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog6
-rw-r--r--src/image.c7
2 files changed, 10 insertions, 3 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index d6e21a777c2..29039395374 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,9 @@
+2014-05-21 Paul Eggert <eggert@cs.ucla.edu>
+
+ Don't assume that ImageMagick uses a 16-bit quantum (Bug#17519).
+ * image.c (imagemagick_load_image): Port to hosts that do not use
+ a 16-bit quantum, i.e., QuantumRange does not equal 65535.
+
2014-05-21 Leo Liu <sdl.web@gmail.com>
* fns.c (Fnreverse): Accept strings for SEQ and update doc-string.
diff --git a/src/image.c b/src/image.c
index 047f7517501..f7c3ef52563 100644
--- a/src/image.c
+++ b/src/image.c
@@ -8368,6 +8368,7 @@ imagemagick_load_image (struct frame *f, struct image *img,
#endif /* HAVE_MAGICKEXPORTIMAGEPIXELS */
{
size_t image_height;
+ double color_scale = 65535.0 / QuantumRange;
/* Try to create a x pixmap to hold the imagemagick pixmap. */
if (!image_create_x_image_and_pixmap (f, img, width, height, 0,
@@ -8408,9 +8409,9 @@ imagemagick_load_image (struct frame *f, struct image *img,
PixelGetMagickColor (pixels[x], &pixel);
XPutPixel (ximg, x, y,
lookup_rgb_color (f,
- pixel.red,
- pixel.green,
- pixel.blue));
+ color_scale * pixel.red,
+ color_scale * pixel.green,
+ color_scale * pixel.blue));
}
}
DestroyPixelIterator (iterator);