184

A certain cellphone maker has changed the default format of taking pictures to HEIF (.HEIC, High Efficiency Image File Format), without asking the users (although there is still the option to use jpeg/jpg).

Is there an app/program on Ubuntu that can open and/or convert HEIF-pictures and even let them be edited?

Filbuntu
  • 12,241
  • 34
  • 87
  • 110
  • You may have to bulk convert: iOS 11 new photo format HEIF https://github.com/pushd/heif – oldfred Sep 26 '17 at 17:02
  • https://github.com/nokiatech/heif/blob/master/LICENSE.TXT is the new one I would assume – Rinzwind Jan 18 '19 at 10:58
  • 3
    For background, note: *Introduced in 2015, HEIF was adopted by Apple in 2017 with the introduction of iOS 11*, and read about how Apple's introduction of this feature, combined with online exams due to COVID, led to *students failing AP exams in 2020*: https://en.wikipedia.org/wiki/High_Efficiency_Image_File_Format – nealmcb Oct 09 '20 at 11:47
  • 1
    A bug about HEIF/HEIC support is already reported in Ubuntu, see https://launchpad.net/bugs/1886271 – Mantas Baltix Nov 13 '21 at 20:26

6 Answers6

175

In recent Ubuntu versions (>= 18.04):

sudo apt-get install libheif-examples

And then

for file in *.heic; do heif-convert $file ${file/%.heic/.jpg}; done

In older Ubuntu or Mint versions, first add this PPA and then do the above steps.

sudo add-apt-repository ppa:strukturag/libheif
sudo apt-get update
kerner1000
  • 4,054
  • 6
  • 21
  • 29
  • 23
    1) This is an official package of 18.04 (https://packages.ubuntu.com/bionic/libheif-examples) and 2) I had to change `.heic` to `.HEIC` in both places since mine were capitalized. Thank you!! This worked so well! – Modular May 21 '19 at 10:21
  • 6
    for file in *.HEIC; do heif-convert -q 100 $file $file.jpg; done – SD. Feb 07 '20 at 14:19
  • 2
    Thanks for this post, it was helpful! A small note that might help someone else: I'm not that familiar with Bash and terminal scripting and it took me more than 30 minutes to figure out that pasting this command caused the error `Input file is not an HEIF file ` because my files had _UPPER_ case extension HEIC and the command used lower-case.. – hallvors Aug 31 '20 at 15:46
  • 6
    This answer won't work with files with spaces/newlines in their names. This version would work: for file in *.HEIC; do heif-convert "$file" "${file/%.HEIC/.jpg}"; done – Yordan Grigorov Apr 05 '21 at 08:28
  • Converting puts the burden of maintaining and storing the conversions onto the user. The other answer (heif-gdk-pixbuf) is a better solution long-term. – Ryan Jun 12 '22 at 23:37
  • Thanks for this. I was thinking wtf is an heic file? I got a new Chromebook to attack to my Android phone, copied a load of heic files from my Camera, then was able to convert them to jpegs following the instructions above, so I can edit them using Gimp. – rodmclaughlin Aug 20 '22 at 14:05
  • 1
    Don't forget to specify JPEG quality and quote the parameters if there are any spaces or other special characters in the file names: `for file in *.heic; do heif-convert -q 97 "$file" "${file/%.heic/.jpg}"; done` – Sergey Galin Feb 20 '23 at 18:19
127

Ubuntu 22.04 quick start

  • install heif-gdk-pixbuf for support in at least eog (Eye of GNOME, GNOME Image Viewer).
  • install heif-thumbnailer for file manager (nautilus, nemo) thumbnails.
  • The available versions of Geeqie, ImageMagick, gThumb and many more (see below) have built-in support.

Official packages

Starting with Ubuntu 20.04: At least for eog (Eye of GNOME, GNOME Image Viewer), you have to install the package heif-gdk-pixbuf (no PPA needed). In a terminal run:

sudo apt install heif-gdk-pixbuf

This will install libheif1 and libde265-0 along.

Apparently KDE distros with KDE Frameworks 5.80 have added support for HEIF and HEIC Image Formats to all KDE Apps (news, KDE announcement, MR), but the support flag is not enabled yet in the default (K)ubuntu packages (ubuntu bug).

Programs/Apps that support HEIF via libheif1 include:

See How best to search for dependencies?

Programs/Apps to CONVERT HEIF/HEIC-pictures:
Most of the above mentioned apps support to convert a HEIC-photo, e.g. eog (Eye of GNOME, GIMP, Krita, GPicView.
Open the photo via one of these image viewer/editor, then select Export to JPG (or another image format like PNG) or Save as (choose a different image format then HEIC).

For batch conversion on the command-line, use heif-convert or ImageMagick's convert.

Unofficial Packages and older Ubuntu versions

If one is willing to install a Flatpak, Snap app, or PPA:

  • GNOME Image Viewer (Eye of GNOME - eog) can handle HEIF pictures with an updated gdk-pixbuf plugin which can be installed/updated with the above mentioned libheif-PPA on Ubuntu 14.04, 16.04, and 18.04. In a terminal run:

    sudo add-apt-repository ppa:strukturag/libheif
    

    Install the package heif-gdk-pixbuf. In a terminal run:

    sudo apt install heif-gdk-pixbuf
    
  • gThumb Image Viewer & Organizer has an unofficial PPA for Ubuntu 18.04, Ubuntu 20.04, Ubuntu 21.04, Ubuntu 21.10, Linux Mint 20 and derivatives:

    sudo add-apt-repository ppa:ubuntuhandbook1/apps  
    sudo apt update  
    sudo apt install gthumb 
    
  • Geeqie 1.6 has HEIF support. It is available in 22.04 ; it may be installed from AppImage, or on ubuntu 18.04 and 20.04 from PPA.

  • ImageMagick 6.9 with HEIF support is available on ubuntu 22.04 ; on ubuntu 18.04 and 20.04 from bleeding edge PPA which also provides an updated libheif1 (1.12 instead of 1.6 as of October'21). If the colors seem wrong/inverted, you may need to convert from YCbCr with e.g. display -colorspace sRGB (source: github)

  • Qt image plugin wraps libheif. It was created by jakar, and may be installed on ubuntu 14.04 to 19.04 from PPA. On more recent versions you may instead rebuild kimageformats as per bug 1951278.

Ubuntu 19.10
There are some prominent bugs in the shipped version of libheif1, so update to the latest version available from the PPA libheif by “struktur AG” team:
In a terminal: sudo add-apt-repository ppa:strukturag/libheif

Upgrade of packages (Sept 2020)
You also need to add the PPA strukturag/libde265 to get the correct dependencies:

sudo add-apt-repository ppa:strukturag/libde265  
sudo apt update  
sudo apt upgrade  

(If you get the error add-apt-repository: not found, make sure software-properties-common is installed, e.g. sudo apt install software-properties-common)

Those who do not wish to install a PPA may download the packages directly from the PPA webpages to install (dpkg -i) or recompile. Packages installed this way will not be automatically updated.

Online Tools

  • Google Photos and Dropbox both support HEIF.

  • There are other online converters (e.g. HEICtoJPEG), but check their privacy policies before use.

Miscellaneous

Filbuntu
  • 12,241
  • 34
  • 87
  • 110
  • 1
    Not sure what the proper etiquette to mention this is (maybe I should edit instead of comment?), but I created a [Qt image plugin](https://github.com/jakar/qt-heif-image-plugin) that wraps libheif. I would like to create a PPA, but that hasn't happened yet. – jakar Jul 01 '18 at 21:53
  • 2
    The [Qt plugin PPA](https://launchpad.net/~jakar/+archive/ubuntu/qt-heif) is now up. – jakar Jul 19 '18 at 21:54
  • Yes, that was what I meant – Ben McCann Dec 09 '19 at 04:08
  • 1
    I'm using Ubuntu 19.10, and I was able to open a HEIF image in "Image Viewer" without needing to do anything special – no extra PPAs – seanlano Feb 06 '20 at 10:23
  • I can't open HEIC files in eog in Ubuntu 20.04 despite installing heif-gdk-pixbuf, and adding the PPA gives me an error ("The repository 'http://ppa.launchpad.net/lucioc/sayonara/ubuntu focal Release' does not have a Release file. Updating from such a repository can't be done securely, and is therefore disabled by default.") – weronika Feb 04 '21 at 02:28
  • @weronika It is a pity, it does not work for you yet. It should work without PPA. What is the error shown when you try to open a HEIF picture? - The PPA mentioned in your comment is not related to HEIF Pictures but to the Sayonara Player (https://launchpad.net/~lucioc/+archive/ubuntu/sayonara). For HEIF packages update, please use another PPA: sudo add-apt-repository ppa:strukturag/libde265. – Filbuntu Feb 04 '21 at 11:00
  • ... wow, you're right, that's a completely unrelated error that just shows up whenever I try to add any PPA, sorry about that! Okay, now I added both the HEIF PPAs (ppa:strukturag/libheif and ppa:strukturag/libde265), I have heif-gdk-pixbuf installed, and it's still not working - when I try to open a HEIF file with eog it displays "Could not load image 'IMG_2171.HEIC'. Unrecognized image format" – weronika Feb 04 '21 at 15:17
  • @weronika No worries! - Interesting that you get this error. Is it a valid HEIF-picture? Maybe you can try with another one. Is it Eye of Gnome you open? Or another Image Viewer? – Filbuntu Feb 04 '21 at 15:24
  • 1
    Huh, I tried again today and this time it's working, even though I just repeated the same eog command in the same terminal as yesterday... Ah well, it works now, thank you for your patience with my weird problems! – weronika Feb 05 '21 at 20:37
  • I upgraded to Kubuntu 21.04 which includes KDE Frameworks 5.80, but Gwenview and Kdenlive still don't open HEIC files taken with a Samsung phone. – 007 May 12 '21 at 17:33
  • @007 It is a pity that it does not work out of the box. Any other Kubuntu 21.04 users out there with any tip? Does Kubuntu 21.04 use [KDE Gear 21.04](https://kde.org/announcements/gear/21.04/) which should contain Gwenview with HEIF, and HEIC formats according to [the announcement](https://kde.org/announcements/gear/21.04/). – Filbuntu May 13 '21 at 09:22
  • @Filbuntu Is there a way to check which version of KDE Gear is installed? Kinfocenter has no relevant information. I also started a [separate question](https://askubuntu.com/questions/1337954/heif-heic-support-in-kubuntu-21-04) pertaining specifically to 21.04. – 007 May 13 '21 at 11:12
  • @eddygeek Thanks again for improving the answer! – Filbuntu Mar 29 '22 at 08:25
  • 2
    Thank youuuuuu! – Ryan Jun 12 '22 at 23:35
39

On Ubuntu 20.04 Focal Fossa:

$ sudo apt install heif-gdk-pixbuf heif-thumbnailer gimagereader gpicview

then find an HEIC file in the file manager, right click, select Properties then Open With and select Image Viewer (if there's two of them, select the one with the more colourful icon) and then select Set as default (or Add if that's the only option.) example of setting the HEIF MIME type

After that you can double-click HEIF files to view them:

example of an HEIF image opened from the file manager

Older Ubuntu LTS:

On Ubuntu 18.04 you can sudo snap install gimp to get the latest version (2.10.10 8 as of May 2019) which can open and edit HEIC files.

On Ubuntu 18.04 there's also a commandline tool to convert HEIC:

sudo apt install libheif-examples
heif-convert IMG_1605.HEIC IMG_1605.jpg

NOTE: you must use lowercase .jpg or it will complain that it doesn't recognise the file format. That message is almost as misleading as the package name, and I can easily understand given these two papercuts why so few people have figured out how to use this tool.

For anyone who doubts that this is an official Ubuntu package:

user@host:~/Desktop$ dpkg -s libheif-examples 
Package: libheif-examples
Status: install ok installed
Priority: optional
Section: video
Installed-Size: 91
Maintainer: Ubuntu Developers <[email protected]>
Architecture: amd64
Source: libheif
Version: 1.1.0-2
Depends: libheif1 (= 1.1.0-2), libc6 (>= 2.14), libgcc1 (>= 1:3.0), libjpeg8 (>= 8c), libpng16-16 (>= 1.6.2-1), libstdc++6 (>= 5.2)
Description: ISO/IEC 23008-12:2017 HEIF file format decoder - examples
 libheif is an ISO/IEC 23008-12:2017 HEIF file format decoder. HEIF is a new
 image file format employing HEVC (h.265) image coding for the best compression
 ratios currently possible.
 .
 Sample applications using libheif are provided by this package.
Original-Maintainer: Debian Multimedia Maintainers <[email protected]>
Homepage: http://www.libheif.org

OK so now the punchline of this joke. ;-)

You can use fuseflt or yacufs FUSE filesystems to mount your pictures folder with automated temporary cached conversion of your HEIC files so all the stock Linux desktop apps can open the HEIC files without ever knowing they're doing it.

Mark Deven below says that he only needed to install libheif via aptitude to get these commands, though he didn't mention what distro he's running.

Wil
  • 765
  • 6
  • 10
  • After installing these packages, libheif-examples and heif-convert are not found commands. – Mark Deven Feb 13 '19 at 15:17
  • 1
    I got it working using aptitude and installing just `libheif` – Mark Deven Feb 15 '19 at 21:06
  • 1
    FWIW, **Debian 10 (Buster)** includes, in its standard repo, the `libheif-examples` package, which lists the `libheif1` package as a dependency. **Note that I've not tested said package**, as I'm still (sadly) languishing in **Debian 7 (Wheezy)**. – Digger Mar 04 '19 at 16:48
  • Ubuntu 18.04 currently (May 2019) includes GIMP version 2.8.22, not 2.10, so there is no HEIF support in the off-the-shelf version of GIMP in Ubuntu. – Óscar May 21 '19 at 16:55
  • 1
    @Óscar: please read the **first line** of the post again. `snap` is off the shelf. `gimp` comes with `snap`. **2.10.10** is the current version for 18.04 via snap – Wil May 23 '19 at 17:40
  • @Wil you are right, I didn't see the snap command, sorry. – Óscar May 24 '19 at 07:46
  • 1
    For Ubuntu 20.04 it's now working in GNOME Image Viewer (Eye of GNOME - eog) – adasiko May 16 '20 at 09:07
  • It's true but I also found `eog` unstable, dying with segfaults when I view certain photos, locking up while generating some thumbnails, so while it's more advanced than `gpicview`, it's got some papercuts too. `gthumb` worked on 19.04 but doesn't on 20.04, sadly. – Wil May 17 '20 at 10:35
  • I didn't need the `gimagereader` on 20.04, is there a reason why it is in the list? – bjrne Nov 11 '22 at 11:31
  • @bjrne because it's one of the apps which can open heif, which was the question. – Wil Nov 16 '22 at 14:48
  • I understand, but the one from the screenshot is the gpicview if I'm not mistaken and it works without installing gimagereader. Maybe add a sentence that there are two options, but one of them is sufficient? Or that the image is gpicview? :) – bjrne Nov 17 '22 at 11:09
5

GIMP 2.10.2 now reads, writes, and edits .HEIC container files, and ImageMagick will convert from .HEIC image container files.

K7AAY
  • 16,864
  • 9
  • 45
  • 77
1

While not really a local conversion, it is possible to view .heic images using Dropbox.

Simply upload the subject images to your Dropbox account, then click on the desired image to view it. You can even right-click on the image to save the .jpeg file back to your local machine in JPEG format. (Note: don't click on the Dropbox's Download button, as that will just get the original .HEIC file.)

MarkHu
  • 5,782
  • 2
  • 16
  • 15
Digger
  • 166
  • 1
  • 7
  • 1
    I voted you up solely because syncing your photos to the cloud is a great idea, keeping them in HEIC format saves space without degrading quality, and being able to access them via a browser means you can access and share them more easily. So it's win win win even if it doesn't really answer the question. – Wil Dec 08 '18 at 13:31
-1

This is how I convert .HEIC files into .jpeg.

  1. Download and install tifig package.

    wget https://github.com/monostream/tifig/releases 
    gunzip tifig-static-0.2.2.tar.gz #or the downloaded tifig file name
    
  2. make tifig executable.

    mv ./tifig ~/tools/tifig
    sudo chmod +x  ~/tools/tifig
    
  3. Now you can use tifig to convert your .heic files.

    for f in *.HEIC; do mv "$f" "\`echo $f | sed s/.HEIC/.heic/`"; done
    for file in *.heic; do echo $file | xargs ~/tools/tifig -v -p $file ${file%.heic}.jpg; done
    

References:

pomsky
  • 67,112
  • 21
  • 233
  • 243
Lasith Niroshan
  • 269
  • 3
  • 7