%PDF- %PDF-
Direktori : /usr/lib/cups/filter/ |
Current File : //usr/lib/cups/filter/imagetobrf |
#!/bin/bash # # Copyright (c) 2015-2018 Samuel Thibault <samuel.thibault@ens-lyon.org> # # Licensed under Apache License v2.0. See the file "LICENSE" for more # information. # # Make sure we have enough options if [ $# != 5 -a $# != 6 ]; then echo "ERROR: $0 jobid user name nb options [filename]" >&2 exit 1 fi NB=$4 OPTIONS=$5 FILE=$6 OUTPUT_FORMAT=brf case $0 in *imagetoubrl*) OUTPUT_FORMAT=ubrl ;; esac . /usr/share/cups/braille/cups-braille.sh checkTool convert imagemagick "embossing images" NEGATE=$(getOption Negate) case "$NEGATE" in True|true) NEGATE=-negate ;; False|false) NEGATE= ;; *) printf "ERROR: Option Negate must either True or False, got '%s'\n" "$NEGATE" >&2 exit 1 ;; esac ROTATE=$(getOption Rotate) case "$ROTATE" in 90\>|270\>) if [ "$GRAPHICWIDTH" -gt "$GRAPHICHEIGHT" ] then # Landscape paper, rotate to landscape instead of to portrait ROTATE=${ROTATE/\>/\<} fi ;; 0|90|270|180) ;; *) printf "ERROR: Option Rotate must be a valid rotation value, got '%s'\n" "$ROTATE" >&2 exit 1 ;; esac MIRROR=$(getOption mirror) case "$MIRROR" in True|true) MIRROR="-flop" ;; False|false) MIRROR="" ;; *) printf "ERROR: Option mirror must either True or False, got '%s'\n" "$MIRROR" >&2 exit 1 ;; esac PAGE="-page ${TOTALGRAPHICWIDTH}x${TOTALGRAPHICHEIGHT}+${GRAPHICHOFFSET}+${GRAPHICVOFFSET}" RESIZE=$(getOption fitplot) case "$RESIZE" in True|true) RESIZE="-size ${GRAPHICWIDTH}x${GRAPHICHEIGHT} -resize ${GRAPHICWIDTH}x${GRAPHICHEIGHT}" ;; False|false) RESIZE="-crop ${GRAPHICWIDTH}x${GRAPHICHEIGHT}+${GRAPHICHOFFSET}+${GRAPHICVOFFSET}" ;; *) printf "ERROR: Option fitplot must either True or False, got '%s'\n" "$RESIZE" >&2 exit 1 ;; esac EDGE=$(getOption Edge) EDGEFACTOR=$(getOptionNumber EdgeFactor) CANNY_RADIUS=$(getOptionNumber CannyRadius) CANNY_SIGMA=$(getOptionNumber CannySigma) CANNY_LOWER=$(getOptionNumber CannyLower) CANNY_UPPER=$(getOptionNumber CannyUpper) case $EDGE in None) WORK=$NEGATE;; Edge) WORK="$NEGATE -edge $EDGEFACTOR -negate" ;; Canny) WORK="-canny ${CANNY_RADIUS}x${CANNY_SIGMA}+$CANNY_LOWER%+$CANNY_UPPER% -negate" ;; *) printf "ERROR: Unknown Edge option value '%s'\n" "$EDGE" >&2 exit 1 ;; esac RENDER_CALL="convert $WORK -rotate $ROTATE $PAGE $RESIZE $MIRROR -flatten - $OUTPUT_FORMAT:-" # Now proceeed echo "INFO: Converting image" 1>&2 if [ -z "$FILE" ] then printf "DEBUG: Calling %s from stdin\n" "$RENDER_CALL" 1>&2 $RENDER_CALL | sed -e '/^\(Width\|X\|Y\): [0-9]*$/,/^$/d' | addmargins else printf "DEBUG: Calling %s on '%s'\n" "$RENDER_CALL" "$FILE" 1>&2 $RENDER_CALL < "$FILE" | sed -e '/^\(Width\|X\|Y\): [0-9]*$/,/^$/d' | addmargins fi echo "INFO: Ready" >&2