From 9b8986a69184dbe8f1f7e2e7d2e96e34321cbee3 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Tue, 10 Oct 2017 23:05:54 +0100 Subject: [PATCH] Horrid hack to fix loading of sRGB TIFF, for example; may break log/lin DPX again. --- src/lib/magick_image_proxy.cc | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/lib/magick_image_proxy.cc b/src/lib/magick_image_proxy.cc index fbb08b7b0..e6733c7de 100644 --- a/src/lib/magick_image_proxy.cc +++ b/src/lib/magick_image_proxy.cc @@ -103,9 +103,13 @@ MagickImageProxy::image (optional, optional) const } unsigned char const * data = static_cast(_blob.data()); - if (data[801] == 1) { - /* The transfer characteristic in this file is "printing density"; in this case ImageMagick sets the colour space - to LogColorspace. Empirically we find that if we subsequently call colorSpace(Magick::RGBColorspace) the colours + if (data[801] == 1 || magick_image->image()->colorspace == Magick::sRGBColorspace) { + /* Either: + 1. The transfer characteristic in this file is "printing density"; in this case ImageMagick sets the colour space + to LogColorspace, or + 2. The file is sRGB. + + Empirically we find that in these cases if we subsequently call colorSpace(Magick::RGBColorspace) the colours are very wrong. To prevent this, set the image colour space to RGB to stop the ::colorSpace call below doing anything. See #1123 and others. */ -- 2.30.2