Use sRGB for jpg files containing a non RGB profile, no Issue

This commit is contained in:
Ingo
2015-05-26 21:40:37 +02:00
parent b192a7f012
commit 09cbdb8936

View File

@@ -217,7 +217,7 @@ void StdImageSource::convertColorSpace(Imagefloat* image, ColorManagementParams
void StdImageSource::colorSpaceConversion (Imagefloat* im, ColorManagementParams cmp, cmsHPROFILE embedded, IIOSampleFormat sampleFormat) {
bool skipTransform = false;
cmsHPROFILE in;
cmsHPROFILE in = NULL;
cmsHPROFILE out = iccStore->workingSpace (cmp.working);
if (cmp.input=="(embedded)" || cmp.input=="" || cmp.input=="(camera)" || cmp.input=="(cameraICC)") {
if (embedded)
@@ -242,7 +242,11 @@ void StdImageSource::colorSpaceConversion (Imagefloat* im, ColorManagementParams
}
}
if (!skipTransform && cmp.input!="(none)") {
if (!skipTransform && in) {
if(in == embedded && cmsGetColorSpace(in) != cmsSigRgbData) { // if embedded profile is not an RGB profile, use sRGB
printf("embedded profile is not an RGB profile, using sRGB as input profile\n");
in = iccStore->getsRGBProfile ();
}
lcmsMutex->lock ();
cmsHTRANSFORM hTransform = cmsCreateTransform (in, TYPE_RGB_FLT, out, TYPE_RGB_FLT, settings->colorimetricIntent,
cmsFLAGS_NOOPTIMIZE | cmsFLAGS_NOCACHE);