67

Is there a command I can use to convert a .jpg or .png or other to extension to a .ico? If possible also to resize it to be a favicon size?

I'd also like to turn it from .ico to .jpg or .png.

Zanna
  • 72,312

3 Answers3

87

The most useful program (suite) to manipulate image is Imagemagick (sudo apt install imagemagick) and for this task you will need the convert binary.

You will need to use something like:

convert -resize x16 -gravity center -crop 16x16+0+0 input.png -flatten -colors 256 -background transparent output/favicon.ico
Pablo Bianchi
  • 17,371
systho
  • 919
42

This is the best command to do that from console:

convert <your-image-here> -define icon:auto-resize=256,64,48,32,16 favicon.ico

Hope you like it!

4

Use this zsh function:

png2ico () {
    local i="${1}" o="${2:-${1:r}.ico}" s="${png2ico_size:-256}"
    convert -resize x${s} -gravity center -crop ${s}x${s}+0+0 "$i" -flatten -colors 256 -background transparent "$o"
}

Like so:

png2ico input.png
HappyFace
  • 325