2016-09-03 13:21:27 +02:00
|
|
|
#! /bin/bash
|
|
|
|
|
2016-09-04 14:28:08 +02:00
|
|
|
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
|
2016-09-04 12:59:57 +02:00
|
|
|
OPTIONS="-resize $W -set depth 8 -set colorspace RGB"
|
2016-09-03 13:21:27 +02:00
|
|
|
|
2016-09-03 17:10:43 +02:00
|
|
|
#initial conversion
|
2016-09-04 14:53:08 +02:00
|
|
|
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"
|
2016-09-03 17:10:43 +02:00
|
|
|
|
|
|
|
echo optimizing >&2
|
|
|
|
|
|
|
|
# edge detection
|
2016-09-04 14:28:08 +02:00
|
|
|
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"
|
|
|
|
cat "$OUTPUT" | grep -ve " [a-fA-F0-9]\{6\}00" | shuf > "${OUTPUT}.tmp"
|
|
|
|
mv "${OUTPUT}.tmp" "$OUTPUT"
|
2016-09-03 17:10:43 +02:00
|
|
|
rm /tmp/px6_optimize
|
|
|
|
|