pointer - annna - Annna the nice friendly bot.
 (HTM) git clone git://bitreich.org/annna/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/annna/
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) Tags
 (DIR) README
       ---
       pointer (1148B)
       ---
            1 #!/bin/bash
            2 
            3 die() {
            4         [ -n "$1" ] && printf '%s\n' "$1" >&2
            5         exit 1
            6 }
            7 
            8 [ $# -ne 2 ] && die "usage: ${0##*/} <file> <outimagefile>"
            9 
           10 mimetype="$(file -ib "$1")"
           11 rminfile=0
           12 case "$mimetype" in
           13 video/*)
           14         in="$(mktemp -u tmp.XXXXXXXX.jpg)"
           15         ffmpeg -i "$1" -frames:v 1 "$in"
           16         if [ $? -gt 0 ];
           17         then
           18                 [ -e "${in}" ] && rm -f "${in}"
           19                 die
           20         fi
           21         rminfile=1;;
           22 image/png*)
           23         # imagemagick text draw on png files is broken,
           24         # tested on gentoo imagemagick version 7.1.0-48
           25         in="$(mktemp tmp.XXXXXXXX.jpg)"
           26         magick "$1" "$in"
           27         if [ $? -gt 0 ];
           28         then
           29                 rm "${in}"
           30                 die
           31         fi
           32         rminfile=1;;
           33 image/*) in="$1";;
           34 *) die "file type '${mimetype}' not supported";;
           35 esac
           36 
           37 n="${1##*/}"
           38 n="${n%.*}"
           39 tmp="$(mktemp tmp.XXXXXXXXX.jpg)"
           40 magick \
           41         \( \
           42                 "${in}" \
           43                 "${ANNNA_MODBASE}/filter-media/pointer.jpg" \
           44                 -resize x500 \
           45                 +append \
           46         \) \
           47         -pointsize 50 -fill white \
           48         -stroke black -strokewidth 1 \
           49         -gravity southwest \
           50         -gravity northeast \
           51         -draw "text -422,+20 '*${n}'" \
           52         "$tmp"
           53 #        -draw "text +10,+10 '${n}'" \
           54 exitcode=$?
           55 if [ $exitcode -eq 0 ];
           56 then
           57         cp "${tmp}" "$2"
           58         chmod o+r "$2"
           59 fi
           60 
           61 # cleanup
           62 rm "${tmp}"
           63 [ $rminfile -eq 1 ] && rm "${in}"
           64 
           65 exit $exitcode
           66