@@ -669,7 +669,6 @@ class PipelineWorker : public Napi::AsyncWorker {
669
669
sharp::ImageType compositeImageType = sharp::ImageType::UNKNOWN;
670
670
composite->input ->access = access;
671
671
std::tie (compositeImage, compositeImageType) = sharp::OpenInput (composite->input );
672
- compositeImage = sharp::EnsureColourspace (compositeImage, baton->colourspacePipeline );
673
672
674
673
if (composite->input ->autoOrient ) {
675
674
// Respect EXIF Orientation
@@ -734,8 +733,7 @@ class PipelineWorker : public Napi::AsyncWorker {
734
733
// gravity was used for extract_area, set it back to its default value of 0
735
734
composite->gravity = 0 ;
736
735
}
737
- // Ensure image to composite is sRGB with unpremultiplied alpha
738
- compositeImage = compositeImage.colourspace (VIPS_INTERPRETATION_sRGB);
736
+ // Ensure image to composite is with unpremultiplied alpha
739
737
compositeImage = sharp::EnsureAlpha (compositeImage, 1 );
740
738
if (composite->premultiplied ) compositeImage = compositeImage.unpremultiply ();
741
739
// Calculate position
@@ -760,7 +758,12 @@ class PipelineWorker : public Napi::AsyncWorker {
760
758
xs.push_back (left);
761
759
ys.push_back (top);
762
760
}
763
- image = VImage::composite (images, modes, VImage::option ()->set (" x" , xs)->set (" y" , ys));
761
+ image = VImage::composite (images, modes, VImage::option ()
762
+ ->set (" compositing_space" , baton->colourspacePipeline == VIPS_INTERPRETATION_LAST
763
+ ? VIPS_INTERPRETATION_sRGB
764
+ : baton->colourspacePipeline )
765
+ ->set (" x" , xs)
766
+ ->set (" y" , ys));
764
767
image = sharp::RemoveGifPalette (image);
765
768
}
766
769
0 commit comments