summaryrefslogtreecommitdiffstats
path: root/kdeprint/filters/imagetops
diff options
context:
space:
mode:
authortoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
committertoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
commitce4a32fe52ef09d8f5ff1dd22c001110902b60a2 (patch)
tree5ac38a06f3dde268dc7927dc155896926aaf7012 /kdeprint/filters/imagetops
downloadtdelibs-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-xkdeprint/filters/imagetops69
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