JPEG and DDS generator scripts (untested)

This commit is contained in:
Rudolf Polzer 2010-06-21 09:45:07 +02:00
parent ec5e922a7b
commit 835ee48b40
2 changed files with 37 additions and 3 deletions

30
misc/tools/generate-dds.sh Executable file
View File

@ -0,0 +1,30 @@
#!/bin/sh
set -e
for X in "$@"; do
case "$X" in
*.jpg)
if [ -n "$scaledown" ]; then
mogrify -geometry "$scaledown" -quality 100 "$X"
fi
echo "$X has no alpha, converting"
nvcompress -bc1 "$X" "${X%.*}.dds"
rm -f "$X"
;;
*.png|*.tga)
if [ -n "$scaledown" ]; then
mogrify -geometry "$scaledown" -quality 100 "$X"
fi
if convert "$X" -depth 16 RGBA:- | perl -e 'while(read STDIN, $_, 8) { substr($_, 6, 2) eq "\xFF\xFF" or exit 1; ++$pix; } exit not $pix;'; then
echo "$X has no alpha, converting"
nvcompress -bc1 "$X" "${X%.*}.dds"
rm -f "$X"
else
echo "$X has alpha, converting"
nvcompress -alpha -bc3 "$X" "${X%.*}.dds"
rm -f "$X"
fi
;;
esac
done

View File

@ -8,13 +8,13 @@ for X in "$@"; do
case "$X" in
*.jpg)
if [ -n "$scaledown" ]; then
mogrify -geometry "$scaledown>" -quality 100 "$X"
mogrify -geometry "$scaledown" -quality 100 "$X"
fi
jpegoptim --strip-all -m$qual "$X"
;;
*.png|*.tga)
if [ -n "$scaledown" ]; then
mogrify -geometry "$scaledown>" -quality 100 "$X"
mogrify -geometry "$scaledown" -quality 100 "$X"
fi
if convert "$X" -depth 16 RGBA:- | perl -e 'while(read STDIN, $_, 8) { substr($_, 6, 2) eq "\xFF\xFF" or exit 1; ++$pix; } exit not $pix;'; then
echo "$X has no alpha, converting"
@ -22,7 +22,11 @@ for X in "$@"; do
jpegoptim --strip-all -m$qual "${X%.*}.jpg"
rm -f "$X"
else
echo "$X has alpha, not converting"
echo "$X has alpha, converting twice"
convert "$X" -alpha extract -quality 100 "${X%.*}.jpg"
convert "$X" -alpha off -quality 100 "${X%.*}_alpha.jpg"
jpegoptim --strip-all -m$qual "${X%.*}_alpha.jpg"
rm -f "$X"
fi
;;
esac