px6/px6_convert.sh

28 lines
980 B
Bash
Raw Normal View History

2016-09-03 13:21:27 +02:00
#! /bin/bash
INPUT=$1
OUTPUT=$2
export OW=$3
export OH=$4
W=$5
2016-09-03 13:21:27 +02:00
if [ "$OW" == "" ]; then OW=0; fi
if [ "$OH" == "" ]; then OH=0; fi
OPTIONS="-resize $W -set depth 8 -set colorspace RGB"
2016-09-03 13:21:27 +02:00
#initial conversion
convert-im6 $OPTIONS $INPUT txt:- | awk -v ow=$OW -v oh=$OH 'match($0, /^([0-9]*),([0-9]*):.*#([0-9A-Fa-f]{6,8}) +r/, arr ){ print "PX " arr[1]+ow " " arr[2]+oh " " arr[3] }' > $OUTPUT
echo optimizing >&2
# edge detection
convert-im6 $OPTIONS $INPUT -negate -edge 4 -negate txt:- | awk -v ow=$OW -v oh=$OH 'match($0, /^([0-9]*),([0-9]*):.*#000000/, arr ){ print "PX " arr[1]+ow " " arr[2]+oh " " }' > /tmp/px6_optimize
grep -Ff /tmp/px6_optimize $OUTPUT > ${OUTPUT}.tmp
grep -Ff /tmp/px6_optimize $OUTPUT >> ${OUTPUT}.tmp
grep -Ff /tmp/px6_optimize $OUTPUT >> ${OUTPUT}.tmp
grep -Ff /tmp/px6_optimize $OUTPUT >> ${OUTPUT}.tmp
cat ${OUTPUT}.tmp >> $OUTPUT
2016-09-04 13:04:29 +02:00
cat $OUTPUT | grep -ve " [a-fA-F0-9]\{6\}00" | shuf > ${OUTPUT}.tmp
mv ${OUTPUT}.tmp $OUTPUT
rm /tmp/px6_optimize