Allow wide-gamut HEIF output at higher bitdepths #4344

This commit is contained in:
Lovell Fuller 2025-03-21 17:01:20 +00:00
parent 3e41f8b65e
commit 03e1b19764
2 changed files with 5 additions and 2 deletions

View File

@ -49,6 +49,9 @@ Requires libvips v8.16.1
[#4316](https://github.com/lovell/sharp/pull/4316) [#4316](https://github.com/lovell/sharp/pull/4316)
[@florentzabera](https://github.com/florentzabera) [@florentzabera](https://github.com/florentzabera)
* Allow wide-gamut HEIF output at higher bitdepths.
[#4344](https://github.com/lovell/sharp/issues/4344)
## v0.33 - *gauge* ## v0.33 - *gauge*
Requires libvips v8.15.3 Requires libvips v8.15.3

View File

@ -1032,7 +1032,7 @@ class PipelineWorker : public Napi::AsyncWorker {
(baton->formatOut == "input" && inputImageType == sharp::ImageType::HEIF)) { (baton->formatOut == "input" && inputImageType == sharp::ImageType::HEIF)) {
// Write HEIF to buffer // Write HEIF to buffer
sharp::AssertImageTypeDimensions(image, sharp::ImageType::HEIF); sharp::AssertImageTypeDimensions(image, sharp::ImageType::HEIF);
image = sharp::RemoveAnimationProperties(image).cast(VIPS_FORMAT_UCHAR); image = sharp::RemoveAnimationProperties(image);
VipsArea *area = reinterpret_cast<VipsArea*>(image.heifsave_buffer(VImage::option() VipsArea *area = reinterpret_cast<VipsArea*>(image.heifsave_buffer(VImage::option()
->set("keep", baton->keepMetadata) ->set("keep", baton->keepMetadata)
->set("Q", baton->heifQuality) ->set("Q", baton->heifQuality)
@ -1227,7 +1227,7 @@ class PipelineWorker : public Napi::AsyncWorker {
(willMatchInput && inputImageType == sharp::ImageType::HEIF)) { (willMatchInput && inputImageType == sharp::ImageType::HEIF)) {
// Write HEIF to file // Write HEIF to file
sharp::AssertImageTypeDimensions(image, sharp::ImageType::HEIF); sharp::AssertImageTypeDimensions(image, sharp::ImageType::HEIF);
image = sharp::RemoveAnimationProperties(image).cast(VIPS_FORMAT_UCHAR); image = sharp::RemoveAnimationProperties(image);
image.heifsave(const_cast<char*>(baton->fileOut.data()), VImage::option() image.heifsave(const_cast<char*>(baton->fileOut.data()), VImage::option()
->set("keep", baton->keepMetadata) ->set("keep", baton->keepMetadata)
->set("Q", baton->heifQuality) ->set("Q", baton->heifQuality)