Support for HEIF #507
Support for HEIF #507
Comments
|
+1 |
|
We'll take a look at supporting the format, however, its a low priority and may take several months. In the mean-time, ImageMagick is open source-- any user can add support for the format and create a pull request. |
|
+1 |
|
I think HEIF is extensively patented so it might be tricky to integrate with IM |
|
+1 |
3 similar comments
|
+1 |
|
+1 |
|
+1 |
|
In a couple of weeks, all HEIF will break loose. I am really surprised that no one in the ImageMagic community has jumped on this one. |
|
We were hoping you would contribute source code to the ImageMagick project to support HEIF :-). |
|
It's complicated because iOS 11 is actually storing tiles of HEVC encoded images in a HEIF container, but there's a demo using the nokia lib to extract them all, ffmpeg to decode them and then stitching them into a single jpeg in the heiftest repo linked from https://stackoverflow.com/questions/45485622/corrupted-heic-tile-when-converting-to-jpeg and nokiatech/heif#9 we're also working on one that uses libav in nokiatech/heif@master...pushd:heiftojpeg imagemagick already supports mpeg via ffmpeg so the HEVC part seems straightforward but it'd need to link to either nokiatech/heif or https://gpac.wp.imt.fr/2017/06/09/gpac-support-for-heif/ to extract the tiles from the HEIF |
|
The GPAC web site discusses how to create a HEIC file but does not discuss how to extract the images / tiles from an existing HEIC file. Do you have the MP4Box command-line parameters to extract the images / tiles? |
|
It seemed like this should be it but not sure why it's invalid...seems to expect a movie. The Nokia one actually works
|
|
An issue as far as performance goes, is decoding all the tiles. Currently I am running a ffmpeg batch job to decode all the tiles. One can do this concurrently ofcourse, but I would argue it would be better to stitch all the hevc tiles together and then decode the frame in one execution. |
|
As far as code licensing goes, Nokia's HEIF code is unusable by most teams; it is incompatible with open source licenses and is explicitly limited to non-commercial use. The GPAC + ffmpeg route is more promising. |
|
Does anyone know if GPAC supports opening heic files? I also see just creating on the site. |
|
The info on creating should demonstrate which atoms or atom trees should be extracted to produce the tiles. Also, I doubt you can just reconstruct the tiles and decode them all in one go, since they're independent HEVC frames. What you can do, however, is OpenMP batch the frame decodes to different instances of the HEVC decoder, to take advantage of multi-core processors. That, and reducing the memory footprint of the encoder, is probably Apple's reason for opting to encode their on-device files as batches of 256x256 tiles, or smaller possibly non-rectangular tiles for the right/bottom edges, for images that are not an even multiple of 256 in width or height. E: And maybe clean up these +1 posts and ask that their posters kindly vote with the emoji thumbs up on the opening post, a feature that Github has had for over a year now? |
|
Very strange why there is no easy way to convert heif to jpg |
|
If you're using a Mac, you can use Too bad you're left out in the cold pretty much everywhere else. |
|
Well, I need to do it on windows server |
|
well, i wrote a program that support iOS 11's HEIF File, https://github.com/liuziangexit/HEIF-Utility |
|
+1 |
|
I have tried both @liuziangexit's program and @kode54's suggestion to use sips, neither worked. The former gives me an error saying "unable to open file", while the later outputs the path name of the source file and the path name of the destination file to the terminal, but does not generate an output converted image. eg: Outputs the following to terminal without generating an image:
does not work. but perhaps i'm using the wrong flags? |
|
I was mistaken. sips does not appear to support HEIC. Preview does, though, but that's a GUI app. |
|
@urban-warrior @modest @agharib FYI the MP4Box/ffmpeg invocation I gave above now appears to work after they fixed a bug in master: gpac/gpac#901 |
|
I see everybody wants to export HEIC to JPEG. I'm looking more for creating HEIC files. Including creating tiled images similar to what the phone creates, and also creating animated HEIC files from GIF and APNG files. |
|
@themaddoctor I've found the correct link: https://patch-diff.githubusercontent.com/raw/ImageMagick/ImageMagick/pull/969.patch |
|
thank you
…On 2/1/18, toshic ***@***.***> wrote:
@themaddoctor I've found the correct link:
https://patch-diff.githubusercontent.com/raw/ImageMagick/ImageMagick/pull/969.patch
--
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub:
#507 (comment)
--
Thomas Kaeding
my public key: http://pgp.mit.edu/pks/lookup?op=get&search=0x81B0FCA32599BE6F
|
|
Thanks IM devs, |
|
After installing from source it works perfectly to |
|
On further testing, I get the same result - convert works, but no heic delegate listed and nothing returned by identify. I'm guessing that it's "normal" for the current (very new) heic support implementation... |
|
DID YOU INSTALL libde265 before you configured IM ?
…On 2/7/18, ennss ***@***.***> wrote:
On further testing, I get the same result - convert works, but no heic
delegate listed and nothing returned by identify. I'm guessing that it's
"normal" for the current (very new) heic support implementation...
--
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub:
#507 (comment)
--
Thomas Kaeding
my public key: http://pgp.mit.edu/pks/lookup?op=get&search=0x81B0FCA32599BE6F
|
|
I get the same result that convert works but invert returns nothing, too. I am sure that I have installed libde265, otherwise convert could not work. |
|
I guess it could be because I didn't implement ping method. Do you test in IM7 or IM6.8 ? |
|
I test this in the newest official release of IM6.9.9-34, which has included the patch heic.c. |
|
Ok, thanks toshic - I'm sure that's exactly it. No ping method. I've been using the latest dev release 7.0.7-22. Thanks very much for your development of the HEIF support! |
|
I will go through the decoder with a comb this weekend and make sure we also have ping support. |
2018-01-22 7.0.7-22 Cristy <quetzlzacatenango@image...>
* Release ImageMagick version 7.0.0-22, GIT revision 22391:e8be814f1:20180122.
2018-01-06 7.0.7-22 Cristy <quetzlzacatenango@image...>
* Support aspect ratio geometry, e.g. -crop 3:2.
* Add support for reading the HEIC image format (reference
ImageMagick/ImageMagick#507).
* Fixed numerous memory leaks, credit to OSS Fuzz.
|
On MacOS 10.13.3 using ImageMagick installed via homebrew, this doesn't work: magick: no decode delegate for this image format 'HEIC' @ error/constitute.c/ReadImage/509. Ironside:Downloads dalek$ magick --version Version: ImageMagick 7.0.7-25 Q16 x86_64 2018-03-04 http://www.imagemagick.org Copyright: © 1999-2018 ImageMagick Studio LLC License: http://www.imagemagick.org/script/license.php Features: Cipher DPC HDRI Modules Delegates (built-in): bzlib freetype jng jpeg ltdl lzma png tiff xml zlib` |
|
@mattwaltbriggs I'm facing the same issue with this version under ubuntu. Libde256 is already installed. |
|
@toshic I'm facing a problem with your version build from the master branch. Libde256-dev is installed. My system is a ubuntu system. |
|
This is how I configured ImageMagick:
PKG_CONFIG_PATH=/usr/lib64/pkgconfig:/usr/share/pkgconfig \
./configure --prefix=/usr --libdir=/usr/lib64 --sysconfdir=/etc \
--with-modules --enable-hdri --with-perl --with-gslib --with-rsvg \
--with-autotrace --with-wmf --with-gvc \
--with-dejavu-font-dir=/usr/share/fonts/DejaVu \
--with-windows-font-dir=/usr/share/fonts/Microsoft \
--with-urw-base35-font-dir=/usr/share/fonts/URW \
--with-gs-font-dir=/usr/share/fonts/Ghostscript
No one will help you with this unless you tell them how you configured
it, and send a copy of config.log.
p.s. I won't be the one helping you anyway.
…On 3/9/18, MarcelMitzkus ***@***.***> wrote:
@toshic I'm facing a problem with your version build from the master branch.
I downloaded the version from
https://github.com/toshic/ImageMagick/archive/master.zip
After building the version i tried to convert a heic file but it's not
working.
Message:
magick: no decode delegate for this image format 'HEIC' @
error/constitute.c/ReadImage/509.
Libde256-dev is installed. My system is a ubuntu system.
It's weired because a few weeks ago i already build a version from your
branch and it was working.
--
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub:
#507 (comment)
--
Thomas Kaeding
my public key: http://pgp.mit.edu/pks/lookup?op=get&search=0x81B0FCA32599BE6F
|
|
Getting the same problem here with Ubuntu 14, using @toshic repo:
But:
No HEIC support at the end. |
|
This might be a stupid question, but should this work on Alpine Linux where we don't have libde256, but instead have the x265 and x265-dev packages?
Neither identify nor convert work. Do I need to use an Ubuntu based container so I can get libde256 for this to work? |
|
Unfortunately, it's not possible for 2 reasons: You can build libde265 from sources if you want to use it on Alpine. |
|
Ah, ok. Thanks @toshic. |
|
I'm testing HEIC support with the macOS Mojave dynamic wallpaper, which should contain a sequence of 16 images. |
|
@b0o Could you open a new issue for that question instead of hijacking this one? |
Apple have announced that all of their devices running iOS 11 and macOS 10.13 will support HEIF (High Efficiency Image File) format.
From Wikipedia:
There is an open source C++ encoder and decoder implementation available from here - https://github.com/nokiatech/heif.
Is there potential for ImageMagick to support this new format?
The text was updated successfully, but these errors were encountered: