mirror of
https://github.com/lovell/sharp.git
synced 2025-07-09 18:40:16 +02:00
Support modulate op with non-sRGB pipeline colourspace #3620
This commit is contained in:
parent
b763801d68
commit
5f8646d937
@ -23,6 +23,9 @@ Requires libvips v8.14.2
|
|||||||
* Ensure profile-less CMYK to CMYK roundtrip skips colourspace conversion.
|
* Ensure profile-less CMYK to CMYK roundtrip skips colourspace conversion.
|
||||||
[#3620](https://github.com/lovell/sharp/issues/3620)
|
[#3620](https://github.com/lovell/sharp/issues/3620)
|
||||||
|
|
||||||
|
* Add support for `modulate` operation when using non-sRGB pipeline colourspace.
|
||||||
|
[#3620](https://github.com/lovell/sharp/issues/3620)
|
||||||
|
|
||||||
### v0.32.0 - 24th March 2023
|
### v0.32.0 - 24th March 2023
|
||||||
|
|
||||||
* Default to using sequential rather than random access read where possible.
|
* Default to using sequential rather than random access read where possible.
|
||||||
|
@ -186,6 +186,7 @@ namespace sharp {
|
|||||||
|
|
||||||
VImage Modulate(VImage image, double const brightness, double const saturation,
|
VImage Modulate(VImage image, double const brightness, double const saturation,
|
||||||
int const hue, double const lightness) {
|
int const hue, double const lightness) {
|
||||||
|
VipsInterpretation colourspaceBeforeModulate = image.interpretation();
|
||||||
if (HasAlpha(image)) {
|
if (HasAlpha(image)) {
|
||||||
// Separate alpha channel
|
// Separate alpha channel
|
||||||
VImage alpha = image[image.bands() - 1];
|
VImage alpha = image[image.bands() - 1];
|
||||||
@ -195,7 +196,7 @@ namespace sharp {
|
|||||||
{ brightness, saturation, 1},
|
{ brightness, saturation, 1},
|
||||||
{ lightness, 0.0, static_cast<double>(hue) }
|
{ lightness, 0.0, static_cast<double>(hue) }
|
||||||
)
|
)
|
||||||
.colourspace(VIPS_INTERPRETATION_sRGB)
|
.colourspace(colourspaceBeforeModulate)
|
||||||
.bandjoin(alpha);
|
.bandjoin(alpha);
|
||||||
} else {
|
} else {
|
||||||
return image
|
return image
|
||||||
@ -204,7 +205,7 @@ namespace sharp {
|
|||||||
{ brightness, saturation, 1 },
|
{ brightness, saturation, 1 },
|
||||||
{ lightness, 0.0, static_cast<double>(hue) }
|
{ lightness, 0.0, static_cast<double>(hue) }
|
||||||
)
|
)
|
||||||
.colourspace(VIPS_INTERPRETATION_sRGB);
|
.colourspace(colourspaceBeforeModulate);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user