diff options
author | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
---|---|---|
committer | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
commit | ce4a32fe52ef09d8f5ff1dd22c001110902b60a2 (patch) | |
tree | 5ac38a06f3dde268dc7927dc155896926aaf7012 /kdeprint/filters/imagetops | |
download | tdelibs-ce4a32fe52ef09d8f5ff1dd22c001110902b60a2.tar.gz tdelibs-ce4a32fe52ef09d8f5ff1dd22c001110902b60a2.zip |
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdelibs@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'kdeprint/filters/imagetops')
-rwxr-xr-x | kdeprint/filters/imagetops | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/kdeprint/filters/imagetops b/kdeprint/filters/imagetops new file mode 100755 index 000000000..634a2caf5 --- /dev/null +++ b/kdeprint/filters/imagetops @@ -0,0 +1,69 @@ +#!/bin/sh + +# extract file name and arguments from command line. File name +# is supposed to be the last one, if it doesn't exist, then it +# is assumed to be another argument. +FILE= +ARGS= +GRAYSCALE= +for arg in "$@"; do + if [ "$arg" = "-gray" ]; then + GRAYSCALE=1 + else + ARGS="$ARGS $FILE" + FILE=$arg; + fi +done + +# we're reading from STDIN, store it into a temporary file +temp=0 +if test -z "$FILE" -o ! -f "$FILE" ; then + ARGS="$ARGS $FILE" + FILE=`mktemp /tmp/imagetops.XXXXXX` || exit 1 + cat > "$FILE" + temp=1 +fi + +# check the file mime type, and set the command correspondingly +cmd= +magic=`file -bi "$FILE"` +magicbase=`echo $magic | cut -f 1 -d "/"` +magictype=`echo $magic | cut -f 2- -d "/"` +if test "$magicbase" != "image" ; then + echo "Not an image" + exit 1; +fi +case $magictype in + jpeg) + cmd="jpegtopnm" + ;; + png|x-png) + cmd="pngtopnm" + ;; + bmp|x-bmp) + cmd="bmptoppm" + ;; + gif) + cmd="giftopnm" + ;; + tiff) + cmd="tifftopnm" + ;; + *) + echo "Unsupported image type: $magic" + exit 1 + ;; + +esac + +# executing command +if [ "$GRAYSCALE" = "1" ]; then + exec $cmd "$FILE" | ppmtopgm | pnmtops $ARGS +else + exec $cmd "$FILE" | pnmtops $ARGS +fi + +# removing temporary file +if test "$temp" = "1"; then + rm -f "$FILE" +fi |