mirror of
https://invent.kde.org/frameworks/kimageformats.git
synced 2025-07-14 02:54:19 -04:00
PSD: use linear profile on float images
On float images, if not color profile is present, a linear one should be chosen. Photoshop works on 32-bit images in a linear color space.
This commit is contained in:
committed by
Albert Astals Cid
parent
bef2b9168f
commit
4026f41890
@ -1504,7 +1504,18 @@ bool PSDHandler::read(QImage *image)
|
|||||||
img.setColorSpace(QColorSpace(QColorSpace::SRgb));
|
img.setColorSpace(QColorSpace(QColorSpace::SRgb));
|
||||||
#endif
|
#endif
|
||||||
} else if (!setColorSpace(img, irs)) {
|
} else if (!setColorSpace(img, irs)) {
|
||||||
// qDebug() << "No colorspace info set!";
|
// Float images are used by Photoshop as linear: if no color space
|
||||||
|
// is present, a linear one should be chosen.
|
||||||
|
if (header.color_mode == CM_RGB && header.depth == 32) {
|
||||||
|
img.setColorSpace(QColorSpace(QColorSpace::SRgbLinear));
|
||||||
|
}
|
||||||
|
#if QT_VERSION >= QT_VERSION_CHECK(6, 8, 0)
|
||||||
|
if (header.color_mode == CM_GRAYSCALE && header.depth == 32) {
|
||||||
|
auto qs = QColorSpace(QPointF(0.3127, 0.3291), QColorSpace::TransferFunction::Linear);
|
||||||
|
qs.setDescription(QStringLiteral("Linear grayscale"));
|
||||||
|
img.setColorSpace(qs);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
// XMP data
|
// XMP data
|
||||||
|
Reference in New Issue
Block a user