1 #!/bin/bash 2 3 PNGFILE=$1 4 ICONFILE=$2 5 if [ -z "${PNGFILE}" ]; then 6 echo "Usage: png2favicon <pngfile> [<iconfile>]" >&2 7 exit 1 8 fi 9 if [ -z "${ICONFILE}" ]; then 10 ICONFILE=favicon.ico 11 fi 12 13 if [ ! -f "${PNGFILE}" ]; then 14 echo "No such file, ${PNGFILE}" >&2 15 exit 1 16 fi 17 if [ -f "${ICONFILE}" ]; then 18 echo "Icon file, ${ICONFILE}, exists. Refusing to overwrite." >&2 19 exit 1 20 fi 21 22 TMPFILE_PNM="/tmp/`basename ${PNGFILE}`$$${RANDOM}.pnm" 23 TMPFILE_PGM="/tmp/`basename ${PNGFILE}`$$${RANDOM}.pgm" 24 25 echo -n "${PNGFILE} -> ${ICONFILE} ..." 26 27 pngtopnm "${PNGFILE}" > "${TMPFILE_PNM}" 28 pngtopnm -alpha "${PNGFILE}" > "${TMPFILE_PGM}" 29 ppmtowinicon -output "${ICONFILE}" -andpgms "${TMPFILE_PNM}" "${TMPFILE_PGM}" 30 rm -f "${TMPFILE_PNM}" "${TMPFILE_PGM}" 31 32 echo " done." png2favicon.sh is a small script that convers a PNG with an alpha channel (transparency) to a "favicon." |