Skip to content

Fix GH-20863: read HEIC/HEIF dimensions for grid and Exif-only images#22491

Open
iliaal wants to merge 1 commit into
php:masterfrom
iliaal:fix/gh-20863-heif-exif-dimensions
Open

Fix GH-20863: read HEIC/HEIF dimensions for grid and Exif-only images#22491
iliaal wants to merge 1 commit into
php:masterfrom
iliaal:fix/gh-20863-heif-exif-dimensions

Conversation

@iliaal

@iliaal iliaal commented Jun 27, 2026

Copy link
Copy Markdown
Contributor

getimagesize() returns false for most camera-produced HEIC files: they are grid images whose primary item carries the full-size ispe, but libavifinfo drops that association once the tile items fill its 32-entry ipma table. This reserves a few ipma slots for the primary item. Some files also expose no bit-depth property, so libavifinfo declines even with a valid ispe; for those the dimensions come from the embedded Exif item. The avifinfo.c change is to vendored code; I'll propose it to libavifinfo upstream too.

Fixes #20863

Camera HEIC files are grid images whose primary item holds the full-size
ispe, but libavifinfo dropped that association once tile items filled its
32-entry ipma table, so the dimensions never resolved. Reserve ipma slots
for the primary item so its association survives. Some files also omit any
bit-depth property, so libavifinfo reports nothing even with a valid ispe;
for those, fall back to the dimensions in the embedded Exif item.

Fixes phpGH-20863
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Unable to use getimagesize on HEIC/HEIF images

1 participant