72

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, 2017 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, 2017 at 18:16
  • 10
    sips -s format JPEG myfile.heic --out myfile.jpg Jul 9, 2018 at 3:04
  • 1
    sips on El Capitan does not work for converting HEIC images.
    – TJ Luoma
    Feb 12, 2020 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, 2020 at 20:43

8 Answers 8

38

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, 2018 at 23:34
  • Not working recently
    – ɹoƃı
    Jul 4, 2018 at 10:08
  • Awesome tool, thank you.
    – Rifinio
    Nov 21, 2019 at 13:02
  • This is fantastic. Thank you.
    – Warren P
    Oct 15, 2020 at 20:47
115

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, 2019 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, 2019 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, 2019 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, 2019 at 23:05
  • Perfect! worked for me Jun 9, 2019 at 22:18
36

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"

…and integrating Josh Hibschman's tip to also retain timestamps:

find . -type f -iname '*.heic' | while read i do \
  fileNoExt="${i%.*}"; \
  jpgFile="${fileNoExt}_heic_conv.jpg"; \
  sips -s format jpeg "$i" --out "$jpgFile"; \
  touch -r "$i" "$jpgFile"; \
  rm "$i"; \
done
5
  • 12
    Without question this should be the definitive answer. No extra software to be installed, as simple as it can get.
    – Endareth
    Jul 14, 2021 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, 2021 at 2:36
  • What does the (:r) qualifier do? Aug 6, 2021 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, 2021 at 0:42
  • 1
    Recommend adding touch -r myfile.heic myfile.jpg to copy over created and modified dates.. or altogether with renaming find . -type f -iname '*.HEIC' | while read i do fileNoExt="${i%.*}"; jpgFile="${fileNoExt}_heic_conv.JPG"; sips -s format jpeg "$i" --out "$jpgFile"; touch -r "$i" "$jpgFile"; rm "$i"; done Apr 12 at 13:12
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, 2019 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, 2018 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, 2018 at 17:41
  • 1
    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, 2020 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
  • 2
    and now is AppleSilicon-ready
    – ingconti
    Oct 17, 2020 at 6:26
0

Use the built-in "Convert Image" macOS Quick Action to easily convert HEIC images to JPEG.

Convert Image Quick Action

the right-click menu item opens up a small utility for converting to various formats and sizes:

Convert Image

You must log in to answer this question.

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