#!/bin/sh set -e read -r filename ICON_MAXSIZE=512 if [ "${filename%%:*}" = xdgicon ]; then filename="$(/usr/lib/qubes/xdg-icon "${filename#*:}" "$ICON_MAXSIZE")" forcemaxsize="$ICON_MAXSIZE" [ -n "${filename}" ] elif [ "${filename}" = "-" ] || [ "${filename##*:}" = "-" ]; then tmpfile="$(mktemp /tmp/qimg-XXXXXXXX)" cat > "${tmpfile}" if [ "${filename%:*}" != "-" ]; then filename="${filename%:*}:${tmpfile}" else filename="${tmpfile}" fi elif ! [ -r "${filename}" ]; then exit 1 fi s="$(identify -format '%w %h %m' "$filename")" w="$(echo "$s"|cut -d " " -f 1)" h="$(echo "$s"|cut -d " " -f 2)" m="$(echo "$s"|cut -d " " -f 3)" if [ "$m" = SVG ]; then tmpfile2="$(mktemp /tmp/qimg-XXXXXXXX.png)" rsvg-convert -o "$tmpfile2" "$filename" # downscale the image if necessary if [ -n "$forcemaxsize" ] && \ { [ "$w" -gt "$forcemaxsize" ] || [ "$h" -gt "$forcemaxsize" ]; }; then convert "$tmpfile2" -scale "${forcemaxsize}x${forcemaxsize}" "$tmpfile2" # read the size again, because icon may not be a square s="$(identify -format '%w %h' "$tmpfile2")" w="$(echo "$s"|cut -d " " -f 1)" h="$(echo "$s"|cut -d " " -f 2)" fi filename="$tmpfile2" fi echo "$w $h" convert -depth 8 -size "${w}x${h}" "$filename" rgba:- if [ -n "${tmpfile}" ]; then rm -f "${tmpfile}" fi if [ -n "${tmpfile2}" ]; then rm -f "${tmpfile2}" fi # vim: ft=sh ts=4 sw=4 et