Index: src/codec/SkCodecImageGenerator.cpp |
diff --git a/src/codec/SkCodecImageGenerator.cpp b/src/codec/SkCodecImageGenerator.cpp |
index db13aaea2973f62445477f8fefdf42bef948d761..2548a006299f71efb612fbb78b8d2583ec89bffa 100644 |
--- a/src/codec/SkCodecImageGenerator.cpp |
+++ b/src/codec/SkCodecImageGenerator.cpp |
@@ -6,6 +6,7 @@ |
*/ |
#include "SkCodecImageGenerator.h" |
+#include "SkPM4fPriv.h" |
SkImageGenerator* SkCodecImageGenerator::NewFromEncodedCodec(SkData* data) { |
SkCodec* codec = SkCodec::NewFromData(data); |
@@ -25,9 +26,12 @@ static SkImageInfo fix_info(const SkCodec& codec) { |
SkAlphaType alphaType = (kUnpremul_SkAlphaType == info.alphaType()) ? kPremul_SkAlphaType : |
info.alphaType(); |
- // Crudely guess that the presence of a color space means sRGB. |
- SkColorProfileType profileType = (codec.getColorSpace()) ? kSRGB_SkColorProfileType : |
- kLinear_SkColorProfileType; |
+ SkColorProfileType profileType = kLinear_SkColorProfileType; |
+ // Crudely guess that the presence of a color space means sRGB, or obey the global sRGB |
+ // selector. |
+ if (gTreatSkColorAsSRGB || codec.getColorSpace()) { |
+ profileType = kSRGB_SkColorProfileType; |
+ } |
return SkImageInfo::Make(info.width(), info.height(), info.colorType(), alphaType, profileType); |
} |