Got .HEIC photo images import from your iPhone? You may found that Ubuntu does not open the file format out-of-the-box.
It’s however easy to either enable this file format support or convert it to JPG or PNG image.
Enable HEIF/HEIC Support for the Default Image Viewer
In Ubuntu 20.04 and Ubuntu 22.04, you can easily enable the HEIF / HEIC file format support via libheif libraries.
1.) Simply search for and open terminal from system app launcher (or press Ctrl+Alt+T on keyboard).
2.) When terminal opens, run command to install the library:
sudo apt install heif-gdk-pixbuf
Type user password (no asterisk feedback) when it asks and hit Enter
Now, double-click to open the .heic (or right-click -> Open with Other Application -> select Image Viewer) photo and enjoy!
For Ubuntu 18.04 / Ubuntu 16.04 users, the library is not available in system repositories. You have to add the third-party PPA by running command:
sudo add-apt-repository ppa:strukturag/libheif
Then refresh package cache via:
sudo apt update
And finally run the command in step 2.) to get it installed.
Convert HEIF/HEIC to JPEG or PNG
It’s also quite easy to convert the photo to another format in Ubuntu Linux.
Simply open the photo via either GIMP or Krita image editor (both available in Ubuntu Software), then select Export to JPG / PNG.
Too many HEIC photos to convert? Using heif-convert
command will be more effective.
1.) Firstly open terminal and run command to install heif-convert
tool:
sudo apt install libheif-examples
2.) Next you can convert a HEIC file to JPEG via command:
heif-convert -q 85 input.HEIC output.JPG
Here -q 85
specifies the output quality level. You can skip it to use default value 92.
To batch convert HEIC photos to JPEG, firstly navigate to the photo folder in file manager and select ‘Open in Terminal’ from context menu:
Finally run command:
for file in *.HEIC; do heif-convert $file ${file%.HEIC}.jpg; done
NOTE: Linux commands are case sensitive! If your HEIC photos have file extension in lower-case, replace HEIC with heic in the last command.
For instance, convert all .HEIC
photos to jpg
with quality 100%, run command:
for file in *.HEIC; do heif-convert -q 100 $file ${file%.HEIC}.jpg; done
Updates for Ubuntu 22.04 LTS:
The powerful Imagemagick package in Ubuntu 22.04 repository has support the HEIC/HEIF image format!
First, press Ctrl+Alt+T on keyboard to open terminal and run command to install the tool:
sudo apt install imagemagick
Then, open the folder that contains the photo images, right-click on select “Open in Terminal” and finally use command to convert:
convert input.HEIC -quality 95 output.JPG
Change the number in -quality 95
, or skip it to use default 90. To convert a batch of files (from .HEIC to .jpg), use command:
for file in *.HEIC; do convert $file ${file%.HEIC}.jpg; done
That’s all. Enjoy!
can you set the batch conversion quality to 100% , would appreciate an example. thanks.
Just add
-q 100
right after heif-convert in command will do the trick. See the alert section.Hey, can you tell me why it keeps telling me ‘Unknown file type in *.JPG’? The files are all HEIC/HEIF images. Thanks!
Thanks!!
use lowercase “jpg” extension
This doesn’t let my 20.04 work on HIEF/HEIC.
SAME! Help!
Works like a charm!
I use:
for file in *.HEIC; do heif-convert $file ${file/%.HEIC/.jpg}; done
The only drawback: the pictures are rotated 90 degrees to the right. I used
convert
to rotate them back:for photo in *.jpg ; do convert $photo -rotate -90 $photo ; done
Cheers
Axel
My .jpg files got 5 times lager in size than .heic. Something to think about if disk space is a concern.
Cheers
Thanks! I messed up a bit, but I finally made it!
how did you manage?
Tried to open heif file in gimp but responds with “failed unknown file type”
ubuntu 20.04
Hi, I get “Could not read HEIF file: Invalid input: No ‘ftyp’ box” when i try use “heif-convert IMG_0347.HEIC IMG_0347.jpg” for example. Please help me.
Sorry I’ve no idea why this error occurs. But imagemagick package in Ubuntu 22.04 supports converting HEIC now.
Install it via apt command in case you don’t have it:
Then try convert an image via:
I’ll try it out in Ubuntu 20.04 and update the tutorial later.
Thanks so much for the pointers.
The instructions for Ubuntu 18.04 could be improved a bit:
* You also need to add another repository:
ppa:strukturag/libde265
* You don’t need to run
sudo apt update
, sincesudo add-apt-repository
already includes that.Not sure if others faced this, but the HEIC images that start with IMG_E are the edits that we have done in the phone and are already jpg files, but have the .HEIC extension. I was getting that No ‘ftyp’ box” error and found help elsewhere that said those were probably jpg files and we could just rename them. I used this script and it worked:
for file in IMG_E*.HEIC; do mv $file ${file%.HEIC}.jpg; done
So I am running two commands in each folder to convert. I also added an rm statement in the convert script to remove the HEIC file once done:
for file in IMG_E*.HEIC; do mv $file ${file%.HEIC}.jpg; done
for file in *.HEIC; do heif-convert -q 100 $file ${file%.HEIC}.jpg; rm –f $file; done
thanks for writing this up, it really helped.
for file in *.HEIC; do convert $file -quality 100 ${file%}.jpg; done
Does the conversion retain EXIF metadata with this tool?
Yes, I just converted and all information was forwarded.
The png/webp in the last command is a copy/paste error obviously