ys memos
Blog

epsをpngに変換するスクリプト


eps

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

参考

epsをpngに変換するコマンド

文字列分割方法

引数のNULLチェック方法

関連タグを探す