catdad-experiments / heic-convert

🤳 convert heic/heif images to jpeg and png
252 stars 26 forks source link

Upgrade libheif to 1.18.0 #41

Closed nahn20 closed 3 days ago

nahn20 commented 2 months ago

We're running into issues with HEIC's produced by iOS 18 failing to be processed by this library. I believe this issue is fixed in libheif 1.18.0 (see relevant issue).

Sully1570 commented 5 days ago

is this why I'm getting Could not parse HEIF file Invalid input: Unspecified: Metadata not correctly assigned to image

Sully1570 commented 3 days ago

I found that installing the npm module libheif-js as a failover for heic-convert somehow fixed the issue. I'm guessing it is because installing the libheif-js module updated the underlying libheif dependency to 1.18+. Would love to know why it's fixed if anyone would like to comment

catdad commented 3 days ago

heic-convert uses libheif-js as a dependency (it's where a lot of the work happens). libheif-js receives regular updates, but ultimately heic-convert pulls in a version as "libheif-js": "^1.17.1". This accepts any non-breaking changes -- and today, nothing inherently requires that libheif-js must be updated. If you npm install heic-convert today, you will get whatever the latest libheif-js is. This is pretty common and also central to how npm dependencies work.

In your existing projects (i.e. ones where you installed heic-convert a while ago), it is you preventing updates through your package-lock file. So you can also update your project, through any means that causes your package-lock to update (e.g. remove and reinstall heic-convert, pin some dependency of heic-convert to your project, etc.)