Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Ask HN: How are most people converting HEIC to jpg?
19 points by par 34 days ago | hide | past | favorite | 47 comments
I use Automator (mac os app) to do this, but it seems like such a dumb thing to do so regularly. If i transfer a photo on my iphone via google drive or some other cloud service, it inevitably needs to be changed to jpg.


I use VIPS cli https://www.libvips.org

I think converting HEIC into jpg would be simple

  vips copy -i src.hif out.jpg
Although I have not used it for a while so not sure it is exactly that. It also does not support batches, you must run one image at a time, but that can be scripted. It also does not support multiple operations, so you might need to use the .v extensions as intermediary between multiple presets(for example sepia + resize + crop).


If I do this on my mac, I wonder if am technically violating the HEIC patent license. I suppose it depends on the details in the patent license, plus perhaps rights Apple has acquired for its users. I definitely don't know, but maybe someone on HN does?


I would assume not because you can do the same thing using a CLI apple installs on all macs, sips

    sips -s format jpeg in.heic --out out.jpeg
also, a heic is just a container around an h265 image frame


i doubt anyone needs to be concerned with licences if they are not producing a paid product.


It's just `vips copy src.heic dst.jpg`.


ah right, ffmpeg requires the -i, not vips.


You can choose on the share sheet, right?

I’m referring to this:

- select something in Photos, then Share.

- tap “Options” under “1 photo selected” top of sheet.

The first choice there is:

Format:

[√] Automatic

[] Current

[] Most Compatible

Choose Automatic for the best format for the destination or Current to prevent file format conversions. Photos and videos may convert to JPEG, PNG, and H.264 formats if you choose Most Compatible.

Most Compatible will put a jpeg on Drive for example, I just verified myself.


Damn! I didn't know this, thank you!


this is my workflow


To make it perfectly clear, no browser support outside Appleworld

https://caniuse.com/?search=HEIC

I mostly am a DSLR photographer but for the occasional iPhone shot

https://mastodon.social/@UP8/115740936297822037

I use Photoshop. (Where's Cindy when I need her?)


Are the HEIC photos personal ones being created by an iPhone? There's a setting you can flip that'll make your iPhone just take JPGs. Which could make sense from you if you're not getting any benefit from HEIC. https://support.apple.com/en-us/116944#:~:text=How%20to%20ca...

Also I've had no problem with HEIC photos on GPhotos, Dropbox, etc. But YMMV


On macOS, select images, right click, “Quick Actions,” “Convert Image.”


That is the only correct answer for non-technical people.


I like it - I had been taking screenshots with Cmd-Shift-4. ha!


When one eludes my ban ... (see other posts how to ban it inside the phone, but it exists outside (people send me messages)) [0] samples to play with.

On the desktop, Preview app (and lots of others) will open and export as ...

On the phone (Apple, sometimes you bewilder me), You can convert in Files, not Photos. 1. Save a photo to FILES from camera roll or web (This works with webp, as well) 2. click and hold the THUMBNAIL, do not open the image. 3. Quick Actions -- Convert image. 4. You can now "save" the image (open, do not click and hold) to your camera roll.

This is BONKERS

As others have noted, "There's an app to do it".

Worst for me in daily life, when you get info on an image (in the camera roll, pull up on the image) WEBP does not even show as a file type. HEIC does.

ios 18, not 26.

[0] https://toolsfairy.com/tools/image-test/sample-heic-files


I save my iPhone photos to my linux desktop. The default image viewing software in the Gnome 3 window manager can display HEIC images.

Conversions on the command line are simple enough with imagemagick. Prior to conversion, I use exiftool to rename the files from IMG_0123.HEIC to the date the image or video was taken, followed by a truncated sha256 digest of the file, e.g. 2025-12-22-1732-f8b7302.HEIC. Otherwise, you can get a nasty condition where the IMG_XXXX filenames collide when consolidated into the same directory.


HEIC is a container; HEIF is a container format. I don't know why images from my iPhone get saved with a HEIC extension... seems like it should be HEIF.

That said, when I move photos from my phone to by desktop via Signal; somewhere along the way it gets converted to JPEG so it's not a concern.


You do know that something similar is true for JPEG, right? :)

JPEG is a compression method. Files with JPEG-compressed data are most likely to be in either JFIF or EXIF container formats. Both will almost always use the .jpg/.jpeg file extension.


Ruby script on my PATH to use sips to convert to jpeg. I can cd to the directory and run "convert.rb" - will find all HEIC files and convert

    #!/usr/bin/env ruby
    
    def run(extension)
      files = `find . -type f -name "\*.#    {extension}"`.split("\n")
      files.each do |f|
        jpg = f.sub(/\.#{extension}/i, '.jpg')
        if !File.exist?(jpg)
          cmd = "sips -s format jpeg '#{f}' --out '#{jpg}'"
          `#{cmd}`
          puts cmd
        end
      end
    end

    run("HEIC")
    run("heic")


If you have imagemagick installed:

  magick mogrify -format JPG *.heic *.HEIC


Hi.

ffmpeg -i input.heic output.jpg

This works on all platforms. You can automate it too. I did for a cloud platform.

Best of luck.


there's a settings on ios to use jpgs always and just remove HEIC from your life!

Settings -> Camera -> Formats -> Most Compatible


my concern was that it takes up more space on my phone, do you know if that's true?


yes that's true about 40% more! You can also leave as HEIC but do:

Settings → Apps -> Photos → Transfer to Mac or PC → Automatic (convert to jpg)

or

In "Shortcuts" app - select photo, convert to jpeg, save file:

https://i.imgur.com/yyUgMm1.png


Set this to just kick in when you transfer/export/share. It generally does the right thing. That doesn't store/keep the dupe, just delivers JPEG to target.


You can enable your phone to offload originals to iCloud, and only download full-res on demand.


I use Nomacs Image Lounge as my default image view on windows. It works really well and it can convert images including HEIC too. Only issue is I think the newer HEIC may not work, but I saw that the newer version on the github may have addressed this but I have not tested. https://nomacs.org/ https://github.com/nomacs/nomacs


Apple generally does this transparently and automatically when exporting photos. If you’re not getting that behavior then you could have it off in settings, it could be your workflow, or it could be a Google Drive bug/limitation. What exactly do you mean by “transfer a photo on my iphone via google drive”? Something like open the Apple Photos app, hit share, select Google Drive, save it somewhere there, go to the Google Drive app, and copy a link?


I’ve always right-clicked the image(s) in Finder, selected Quick Actions, and picked Convert Image. Does this still work on newer Macs?


Absolutely it still does.


Yes


On NixOS, the libheif package provides a `heif-dec` command, which you can use as follows:

    heif-dec foo.heic foo.jpg


There are also things like Dolphin actions/addons (I forget what they’re actually called) that you can add so you can do a conversion with a right click.

They basically consume the libheif command line tool so you install that as a prerequisite.

Gwenview also opens them.


This is exactly how I do it in KDE:

  > cat ~/.local/share/kio/servicemenus/convertHEIF.desktop 
  [Desktop Entry]
  Type=Service
  MimeType=image/heif;
  Actions=convertHEIF

  [Desktop Action convertHEIF]
  Name=Convert to JPEG
  Icon=image-bmp
  Exec=/bin/sh -c "heif-dec -q 95 %u $(dirname %u)/$(basename %u .heic).jpg"


Yes! This is exact what I was referring to.


I use LiveConvert (it runs locally on your phone). https://apps.apple.com/no/app/liveconvert-heic-to-jpg/id6747...


heif-convert CLI https://github.com/NeverMendel/heif-convert

Use it to convert customer images sent from iphones.


I'm using FastStone, it has individual and batch conversion options. Though I touch HEIC only rarely, when someone with iphone sends me pictures.


The greybeards would do it with imagemagick, vips, or even ffmpeg. Gives you full control over the quality and you can script it, parallelize it, and more.


On macOS if you drag a synced HEIC photo from Photos.app to the Finder it automatically gets converted to a JPEG.


Settings -> Apps -> Photo -> Transfer to Mac or PC (Automatic).


I have this selected, but if I take a photo and upload it straight to google drive, it uploads as HEIC.


I simply live with this, but if I need to download it in a compatible format from Google Drive, I just screenshot the photo from Google Drive instead of downloading it. That solves the problem for me but from a different direction.


Usually a quick Apple Shortcut is how I go about it


image magick's convert would work.


on Mac I literally just right click > Quick Actions > Convert Image > convert to jpg


Pillow (python lib) has a plugin

libheic on some old debian had troubles parsing recent metadata, PILLOW did not




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: