62

So, here’s the thing. I have a new iPhone and an old Mac. iOS 11 (still in beta as of today) and El Capitan (no more updates for this Mac). I use iCloud photo library in both devices. When I take a photo in the new format with my iPhone 7, is there any way to use it right away in my mac, without having to convert it in my iPhone first? I mean, can I get those photos synced through iCloud and converted locally on my Mac?

I have tried to find a third party software that could do that kind of conversion, but was not able to find any that would work on El Capitan. Any idea?

16
  • 1
    I am still trying to understand the mechanics of it. I have set it to Automatic in the iPhone. But I got a couple heic files in Photos app through iCloud Photo Library sync and also when downloading from iCloud website. I guess the website shout allow us to export a JPEG. And it would be nice to have the same in Photos app, in El Capitan. Sep 1 '17 at 17:31
  • 1
    @Mark yeah, that was one of my first thoughts, but it seems that their HEIC conversion is a feature that only works in a more recent OS. Sep 1 '17 at 18:16
  • 9
    sips -s format JPEG myfile.heic --out myfile.jpg Jul 9 '18 at 3:04
  • 1
    sips on El Capitan does not work for converting HEIC images.
    – TJ Luoma
    Feb 12 '20 at 11:05
  • 4
    @PatNiemeyer and @dmon that should be sips -s format jpeg with lowercase jpeg. Uppercase gives Error: Unsupported output format JPEG (sips-294 on MacOS Catalina 10.15.5)
    – jonatan
    Sep 27 '20 at 20:43
36

We just released this little free app for macOS: https://imazing.com/heic

Minimum macOS version is 10.8, so no worries with El Capitan. : )

enter image description here

4
  • 5
    This tool also preserves EXIF data too, which is awesome! Mar 8 '18 at 23:34
  • Not working recently
    – ɹoƃı
    Jul 4 '18 at 10:08
  • Awesome tool, thank you.
    – Rifinio
    Nov 21 '19 at 13:02
  • This is fantastic. Thank you.
    – Warren P
    Oct 15 '20 at 20:47
98

You can use the command line tool imagemagick to convert HEIC images to JPG.

# install imagemagick
brew install imagemagick

# convert a single image
magick convert foo.HEIC foo.jpg

# bulk convert multiple images
magick mogrify -monitor -format jpg *.HEIC
6
  • 2
    What does "convert: no decode delegate for this image format `HEIC" mean?
    – gap
    Mar 9 '19 at 22:16
  • 3
    @gap, you error message means you don't have the right stuff installed to deal with the HEIC format. brew upgrade imagemagick solved this problem for me.
    – kuzzooroo
    Apr 19 '19 at 19:11
  • 1
    @gap Not sure. My original install command had an extra option: brew install imagemagick --with-libheif, but others said it wasn't needed anymore. You could give that a try. Maybe it makes a difference depending on your OSX version.
    – wisbucky
    Apr 24 '19 at 18:04
  • @wisbucky, regarding my non-deleted answer: you were right. not sure what was going on before. Thanks for the feedback. 👍
    – Kirby
    May 13 '19 at 23:05
  • Perfect! worked for me Jun 9 '19 at 22:18
17

The macOS-native way of doing image conversions like these is apparently sips(1) (raising comments of Pat Niemeyer and jonatan to proper answer status, for improved findability):

sips -s format jpeg myfile.heic --out myfile.jpg

So if you have a directory full of HEIC files, you can launch a macOS Big Sur terminal, where, if you run the default Zsh shell, you can make jpeg copies of all those files like this:

for i in *.heic(:r) ; sips -s format jpeg "$i.heic" --out "$i.jpg"

…and presto, you've got jpeg copies!

If you want to also nuke the originals, follow up with a rm *.heic – or use this variant instead:

for i in *.heic(:r) ; sips -s format jpeg "$i.heic" --out "$i.jpg" && rm "$1.heic"
4
  • 5
    Without question this should be the definitive answer. No extra software to be installed, as simple as it can get.
    – Endareth
    Jul 14 at 11:55
  • When I try this in bash I get Warning: .heic not a valid file - skipping. The imagemagick solution works for me. Jul 22 at 2:36
  • What does the (:r) qualifier do? Aug 6 at 0:11
  • (:r) is a zsh globbing filename generation feature that removes a filename extension from matches, so *.heic(:r) would match example files a.heic and b.heic as a b.
    – ecmanaut
    Aug 20 at 0:42
7

I found Dropbox to be a good conversion tool, as it does it transparently for the usage on any operating system and platform.

When you do the shot from iPhone, Dropbox automatically converts .heic image to .jpg when uploading it to computer (controlled by the settings). Since I'm using both Windows OS and MacOS, there's no need to install separate additional applications.

3

Below an online (web browser) conversion tool: doesn’t support batch processing but it will work on a wide range of systems, including non-Apple OSs.

http://heictojpg.com/

1
  • 1
    This website now lets you upload up to 50 images at once.
    – kuzzooroo
    Apr 19 '19 at 19:11
2

An excellent command line tool that works very well is tifig. It can be easily compiled on multiple platforms. It should compile on any platform with a relatively modern development toolchain, that should include El Capitan!

3
  • I followed the instructions in the repo to install tifig using brew install cmake vips ffmpeg (from the repo) but it doesn't seem to work (tifig command not found). Oct 8 '18 at 21:28
  • I don't know if you did or not, but you have to follow the build instructions as well. To execute inside build folder after build, just run ./tifig -v -p file.heic file.jpg
    – kentrh
    Dec 13 '18 at 17:41
  • Could a demo brew install and usage be provided to turn this into a more complete answer? As it stands it's more of a comment.
    – oliversm
    Apr 1 '20 at 23:35
2

my two cents for Catalina.

I was tired of using cmd line...

I wrote a small app... if interested. it's free:

https://apps.apple.com/us/app/heictojpeg/id1486256731?ls=1&mt=12

hope can be useful :)

1
  • 1
    and now is AppleSilicon-ready
    – ingconti
    Oct 17 '20 at 6:26

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .