diff options
author | Paul Eggert <[email protected]> | 2014-05-21 12:51:58 -0700 |
---|---|---|
committer | Paul Eggert <[email protected]> | 2014-05-21 12:51:58 -0700 |
commit | 6c596cb2ea3075afab8812f45803683be2949323 (patch) | |
tree | 18018a6d0947dff4b272e5e19f96367ba0fcff75 /src | |
parent | 254b7645f30f67abd00b773f2b0eac63d4c382dd (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/ChangeLog | 6 | ||||
-rw-r--r-- | src/image.c | 7 |
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); |