2020/12/02
epsをpngに変換するコマンドをスクリプトにしておくことにした。
よく使うからね
完成したスクリプト
まずは完成物。
eps2png.sh
という名前で~/Scripts
に保存することにした。
#!/usr/bin/env bash
if [ -z "$1" ]
then
echo "Please input filename"
exit
fi
eps_img=$1
echo "[INPUT] " $eps_img
png_img=`echo ${eps_img} | cut -d"." -f1`.png
echo $png_img
if [ "$2" ]
then
png_img=$2
echo $png_img
fi
gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=png16m -dGraphicsAlphaBits=4 \
-sOutputFile=${png_img} ${eps_img}
echo "[OUTPUT]" $png_img
解説
内容を詳しく知りたい方のために解説する。
シバン
#!/usr/bin/env bash
コマンドライン引数チェック
引数が足りなければメッセージを残して終了
if [ -z "$1" ]
then
echo "Please input filename"
exit
fi
変換元ファイル名を変数に代入
eps_img=$1
echo "[INPUT] " $eps_img
拡張子をpng
に置換して変換先ファイル名とする
epsファイル名を.
で分割し、1つ目の区切りに.png
をつけることで、ファイル名の拡張子部分が置換される。
png_img=`echo ${eps_img} | cut -d"." -f1`.png
変換先ファイル名指定時にはファイル名を更新
第三引数を出力ファイル名として指定できるようにしたかったので、第三引数がある場合は、ファイル名をそちらに変更する。
特に指定がなければそのままである。
if [ "$2" ]
then
png_img=$2
echo $png_img
fi
eps2png変換
epsをpngに変換するコマンドで紹介したコマンドを用いる。
gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=png16m -dGraphicsAlphaBits=4 \
-sOutputFile=${png_img} ${eps_img}
終了のメッセージ
echo "[OUTPUT]" $png_img