mirror of
https://github.com/lovell/sharp.git
synced 2025-07-09 18:40:16 +02:00
Add compression property to HEIF image metadata #2504
This commit is contained in:
parent
75cddbdb6d
commit
d000f57773
@ -22,6 +22,7 @@ A `Promise` is returned when `callback` is not provided.
|
|||||||
* `pagePrimary`: Number of the primary page in a HEIF image
|
* `pagePrimary`: Number of the primary page in a HEIF image
|
||||||
* `levels`: Details of each level in a multi-level image provided as an array of objects, requires libvips compiled with support for OpenSlide
|
* `levels`: Details of each level in a multi-level image provided as an array of objects, requires libvips compiled with support for OpenSlide
|
||||||
* `subifds`: Number of Sub Image File Directories in an OME-TIFF image
|
* `subifds`: Number of Sub Image File Directories in an OME-TIFF image
|
||||||
|
* `compression`: The encoder used to compress an HEIF file, `av1` (AVIF) or `hevc` (HEIC)
|
||||||
* `hasProfile`: Boolean indicating the presence of an embedded ICC profile
|
* `hasProfile`: Boolean indicating the presence of an embedded ICC profile
|
||||||
* `hasAlpha`: Boolean indicating the presence of an alpha transparency channel
|
* `hasAlpha`: Boolean indicating the presence of an alpha transparency channel
|
||||||
* `orientation`: Number value of the EXIF Orientation header, if present
|
* `orientation`: Number value of the EXIF Orientation header, if present
|
||||||
|
@ -8,6 +8,9 @@ Requires libvips v8.11.0
|
|||||||
|
|
||||||
* Drop support for Node.js 10, now requires Node.js >= 12.13.0.
|
* Drop support for Node.js 10, now requires Node.js >= 12.13.0.
|
||||||
|
|
||||||
|
* Add `compression` property to HEIF image metadata.
|
||||||
|
[#2504](https://github.com/lovell/sharp/issues/2504)
|
||||||
|
|
||||||
* AVIF encoding now defaults to `4:4:4` chroma subsampling.
|
* AVIF encoding now defaults to `4:4:4` chroma subsampling.
|
||||||
[#2562](https://github.com/lovell/sharp/issues/2562)
|
[#2562](https://github.com/lovell/sharp/issues/2562)
|
||||||
|
|
||||||
|
@ -271,6 +271,7 @@ function _isStreamInput () {
|
|||||||
* - `pagePrimary`: Number of the primary page in a HEIF image
|
* - `pagePrimary`: Number of the primary page in a HEIF image
|
||||||
* - `levels`: Details of each level in a multi-level image provided as an array of objects, requires libvips compiled with support for OpenSlide
|
* - `levels`: Details of each level in a multi-level image provided as an array of objects, requires libvips compiled with support for OpenSlide
|
||||||
* - `subifds`: Number of Sub Image File Directories in an OME-TIFF image
|
* - `subifds`: Number of Sub Image File Directories in an OME-TIFF image
|
||||||
|
* - `compression`: The encoder used to compress an HEIF file, `av1` (AVIF) or `hevc` (HEIC)
|
||||||
* - `hasProfile`: Boolean indicating the presence of an embedded ICC profile
|
* - `hasProfile`: Boolean indicating the presence of an embedded ICC profile
|
||||||
* - `hasAlpha`: Boolean indicating the presence of an alpha transparency channel
|
* - `hasAlpha`: Boolean indicating the presence of an alpha transparency channel
|
||||||
* - `orientation`: Number value of the EXIF Orientation header, if present
|
* - `orientation`: Number value of the EXIF Orientation header, if present
|
||||||
|
@ -724,6 +724,25 @@ describe('Image metadata', function () {
|
|||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
|
||||||
|
it('AVIF', async () => {
|
||||||
|
const metadata = await sharp(fixtures.inputAvif).metadata();
|
||||||
|
assert.deepStrictEqual(metadata, {
|
||||||
|
format: 'heif',
|
||||||
|
width: 2048,
|
||||||
|
height: 858,
|
||||||
|
space: 'srgb',
|
||||||
|
channels: 3,
|
||||||
|
depth: 'uchar',
|
||||||
|
isProgressive: false,
|
||||||
|
pages: 1,
|
||||||
|
pageHeight: 858,
|
||||||
|
pagePrimary: 0,
|
||||||
|
compression: 'av1',
|
||||||
|
hasProfile: false,
|
||||||
|
hasAlpha: false
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
it('File input with corrupt header fails gracefully', function (done) {
|
it('File input with corrupt header fails gracefully', function (done) {
|
||||||
sharp(fixtures.inputJpgWithCorruptHeader)
|
sharp(fixtures.inputJpgWithCorruptHeader)
|
||||||
.metadata(function (err) {
|
.metadata(function (err) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user