From 835ee48b40ddb185b6b3583eee1a2917c01df1b9 Mon Sep 17 00:00:00 2001 From: Rudolf Polzer Date: Mon, 21 Jun 2010 09:45:07 +0200 Subject: [PATCH 1/1] JPEG and DDS generator scripts (untested) --- misc/tools/generate-dds.sh | 30 +++++++++++++++++++ ...{jpeg-if-not-alpha.sh => generate-jpeg.sh} | 10 +++++-- 2 files changed, 37 insertions(+), 3 deletions(-) create mode 100755 misc/tools/generate-dds.sh rename misc/tools/{jpeg-if-not-alpha.sh => generate-jpeg.sh} (61%) diff --git a/misc/tools/generate-dds.sh b/misc/tools/generate-dds.sh new file mode 100755 index 00000000..7e407b09 --- /dev/null +++ b/misc/tools/generate-dds.sh @@ -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 diff --git a/misc/tools/jpeg-if-not-alpha.sh b/misc/tools/generate-jpeg.sh similarity index 61% rename from misc/tools/jpeg-if-not-alpha.sh rename to misc/tools/generate-jpeg.sh index f6e4597c..f9ba64a9 100755 --- a/misc/tools/jpeg-if-not-alpha.sh +++ b/misc/tools/generate-jpeg.sh @@ -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 -- 2.39.2