diff options
Diffstat (limited to 'build_icon.sh')
-rwxr-xr-x | build_icon.sh | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/build_icon.sh b/build_icon.sh new file mode 100755 index 0000000..d39e764 --- /dev/null +++ b/build_icon.sh @@ -0,0 +1,79 @@ +#!/usr/bin/env sh + +# build_icon.sh +# Copyright 2024 Gabriel Bjørnager Jensen. +# +# Permission is hereby granted, free of charge, to +# any person obtaining a copy of this software and +# associated documentation files (the “Software”), +# to deal in the Software without restriction, in- +# cluding without limitation the rights to use, +# copy, modify, merge, publish, distribute, subli- +# cense, and/or sell copies of the Software, and +# to permit persons to whom the Software is fur- +# nished to do so, subject to the following con- +# ditions: +# +# The above copyright notice and this permission +# notice shall be included in all copies or sub- +# stantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WAR- +# RANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING +# BUT NOT LIMITED TO THE WARRANTIES OF MER- +# CHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE +# AND NONINFRINGEMENT. IN NO EVENT SHALL THE AU- +# THORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE +# OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +# Use in case an ICO image is wanted. +# +# On Arch, install `extra/icoutils` and `extra/ +# imagemagick`. + +failure() { + echo failure: ${1} + exit 2 +} + +if [ -z "${1}" ] +then + failure "input name is not set" +fi + +if [ -z "${2}" ] +then + failure "output name is not set" +fi + +renderDirectory="$(mktemp -d)" + +render_icon() { + name="${1}" + width="${2}" + + output="${renderDirectory}/${name}_${width}x${width}.png" + + echo rendering \"${output}\" + convert -background transparent "${name}.svg" -scale "${width}" "${output}" +} + +input="${1}" + +render_icon "${input}" 16 +render_icon "${input}" 24 +render_icon "${input}" 32 +render_icon "${input}" 48 +render_icon "${input}" 64 +render_icon "${input}" 96 +render_icon "${input}" 128 +render_icon "${input}" 192 +render_icon "${input}" 256 + +output="${2}.ico" + +echo combining into \"${output}\" +icotool -co "${output}" "${renderDirectory}/"*".png" |