mirror of
https://github.com/lovell/sharp.git
synced 2025-07-09 10:30:15 +02:00
Guard heif bitdepth property for prebuilt binaries
This commit is contained in:
parent
3c26080c39
commit
aa1bbcb5c1
@ -1011,6 +1011,7 @@ function tiff (options) {
|
|||||||
* Use these AVIF options for output image.
|
* Use these AVIF options for output image.
|
||||||
*
|
*
|
||||||
* AVIF image sequences are not supported.
|
* AVIF image sequences are not supported.
|
||||||
|
* Prebuilt binaries support a bitdepth of 8 only.
|
||||||
*
|
*
|
||||||
* @example
|
* @example
|
||||||
* const data = await sharp(input)
|
* const data = await sharp(input)
|
||||||
@ -1097,6 +1098,9 @@ function heif (options) {
|
|||||||
}
|
}
|
||||||
if (is.defined(options.bitdepth)) {
|
if (is.defined(options.bitdepth)) {
|
||||||
if (is.integer(options.bitdepth) && is.inArray(options.bitdepth, [8, 10, 12])) {
|
if (is.integer(options.bitdepth) && is.inArray(options.bitdepth, [8, 10, 12])) {
|
||||||
|
if (options.bitdepth !== 8 && this.constructor.versions.heif) {
|
||||||
|
throw is.invalidParameterError('bitdepth when using prebuilt binaries', 8, options.bitdepth);
|
||||||
|
}
|
||||||
this.options.heifBitdepth = options.bitdepth;
|
this.options.heifBitdepth = options.bitdepth;
|
||||||
} else {
|
} else {
|
||||||
throw is.invalidParameterError('bitdepth', '8, 10 or 12', options.bitdepth);
|
throw is.invalidParameterError('bitdepth', '8, 10 or 12', options.bitdepth);
|
||||||
|
@ -79,9 +79,16 @@ describe('HEIF', () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
it('valid bitdepth value does not throw an error', () => {
|
it('valid bitdepth value does not throw an error', () => {
|
||||||
|
const { heif } = sharp.versions;
|
||||||
|
delete sharp.versions.heif;
|
||||||
assert.doesNotThrow(() => {
|
assert.doesNotThrow(() => {
|
||||||
sharp().heif({ compression: 'av1', bitdepth: 12 });
|
sharp().heif({ compression: 'av1', bitdepth: 12 });
|
||||||
});
|
});
|
||||||
|
sharp.versions.heif = '1.2.3';
|
||||||
|
assert.throws(() => {
|
||||||
|
sharp().heif({ compression: 'av1', bitdepth: 10 });
|
||||||
|
}, /Error: Expected 8 for bitdepth when using prebuilt binaries but received 10 of type number/);
|
||||||
|
sharp.versions.heif = heif;
|
||||||
});
|
});
|
||||||
it('invalid bitdepth value should throw an error', () => {
|
it('invalid bitdepth value should throw an error', () => {
|
||||||
assert.throws(() => {
|
assert.throws(() => {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user