aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPaul Eggert <[email protected]>2014-05-21 12:51:58 -0700
committerPaul Eggert <[email protected]>2014-05-21 12:51:58 -0700
commit6c596cb2ea3075afab8812f45803683be2949323 (patch)
tree18018a6d0947dff4b272e5e19f96367ba0fcff75 /src
parent254b7645f30f67abd00b773f2b0eac63d4c382dd (diff)
Don't assume that ImageMagick uses a 16-bit quantum.
* image.c (imagemagick_load_image): Port to hosts that do not use a 16-bit quantum, i.e., QuantumRange does not equal 65535. Fixes: debbugs:17519
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 d6e21a777c..2903939537 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,9 @@
+2014-05-21 Paul Eggert <[email protected]>
+
+ 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 <[email protected]>
* fns.c (Fnreverse): Accept strings for SEQ and update doc-string.
diff --git a/src/image.c b/src/image.c
index 047f751750..f7c3ef5256 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);