Quick and easy way to batch convert multiple HEIC to png or jpg on macOS?
Is there a quick and easy way to convert many HEIC files to png on macOS?
Example
Suppose we take some live photos on iPhone, airdrop them to MacBook, and we want to upload them to a site that only accepts .png
files.
I've noticed if you simply change the extension from .HEIC
to .png
(e.g. in the above image), then as far as I can tell, the image file is treated accordingly by programs and it 'works'.
However, I guess the underlying file hasn't changed, so it could still contain live photo information (I think), which a normal png wouldn't have, which, in a worst case, could be a security risk or in less severe cases simply be an annoyance.
What I know so far
The best I can do right now is go through the files one by one renaming them. I would really like to know what other solutions are available (via point and click and terminal), and have a strong preference for not having to download any external software.
Solution 1:
To convert all .HEIC
images in a directory to .png
Open terminal. cd
to the directory where the .HEIC
files you want to convert are stored.
Be careful, this will convert all .HEIC files in the directory - back them up first if you're not sure you want to do that just yet.
for f in *.HEIC
do sips -s format png "${f}" --out "${f%.*}.png"
done
If you want to convert and resize images
The following will convert and resize images so the maximum height and width is 400
pixels (but you can change 400 below to any value)
Be careful, this will convert and resize all .HEIC files in the directory - back them up first if you're not sure you want to do that just yet.
for f in *.HEIC
do sips -s format png "${f}" -Z 400 --out "${f%.*}.png"
done
Reference
- sips documentation: https://ss64.com/osx/sips.html