top | item 46326261

Ask HN: How are most people converting HEIC to jpg?

19 points| par | 2 months ago

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.

47 comments

order

gethly|2 months ago

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).

rslashuser|2 months ago

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?

jcupitt|2 months ago

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

floam|2 months ago

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.

varenc|2 months ago

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

jeremymcanally|2 months ago

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

rvz|2 months ago

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

czbond|2 months ago

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

k310|2 months ago

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

linkregister|2 months ago

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.

mikece|2 months ago

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.

mikaraento|2 months ago

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.

michaelbryzek|2 months ago

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")

nine_k|2 months ago

If you have imagemagick installed:

  magick mogrify -format JPG *.heic *.HEIC

reactordev|2 months ago

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.

fcpguru|2 months ago

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

Settings -> Camera -> Formats -> Most Compatible

par|2 months ago

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

djinnrutger|2 months ago

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

handsclean|2 months ago

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?

li_ion|2 months ago

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

rvz|2 months ago

Absolutely it still does.

zetalyrae|2 months ago

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

    heif-dec foo.heic foo.jpg

dangus|2 months ago

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.

Yizahi|2 months ago

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

ComputerGuru|2 months ago

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.

BugsJustFindMe|2 months ago

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

RegnisGnaw|2 months ago

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

par|2 months ago

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

paidsearchguy|2 months ago

Usually a quick Apple Shortcut is how I go about it

shmerl|2 months ago

image magick's convert would work.

erikqu|2 months ago

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

agumonkey|2 months ago

Pillow (python lib) has a plugin

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