Using sips to create an icns file from a png file

4.3k Views Asked by At

I can make a jpeg from a png:

sips -s format jpeg myIcon.png --out myIcon.jpeg

But the same command won't work on icns:

sips -s format icns myIcon.png --out myIcon.icns
# Error: Unable to write image to file ...myIcon.icns

How can I get around this error?

1

There are 1 best solutions below

2
colossatr0n On BEST ANSWER

sips can only convert images into .icns if the initial image file is 256x256, 512x512, and as far as I've been able to verify, 1024x1024. You would have to first resize your image to one of these sizes, and then use the format option to convert the image to a .icns. The code below does this.

First, resize the image to one of the resolutions above:

sips -z 256 256 myIcon.png --out myIconResized.png

OR

sips -z 512 512 myIcon.png --out myIconResized.png

OR

sips -z 1024 1024 myIcon.png --out myIconResized.png

Second, convert the resized image file to a .icns file.

sips -s format icns myIconResized.png --out myIcon.icns

Now you have a .icns file from the resized image file.