卒論書いているときにEPSファイルへの変換面倒なので。
さぼり 気分転換に書きました
Texる時に便利かも
機能
・画像ファイルを全てepsファイルに変えます
・また、ハッシュ値を見て、変化があったものにだけ処理
・対象ファイル:jpg,JPG,png,PNG
実験環境
・MacOSX10.9
・md5コマンドとconvertコマンドがうごく(imagemagickだったかを入れると入る。)
・その他のコマンドもいるけど、普通入ってると思う(自分が手動で入れた覚えがないため)
実行方法
1:下記ディレクトリ構造にする
a_dir
|
|-----下記のシェルスクリプト.sh
|
|-----/loadpic
|
|-----/savepic
|
|-----/savehash
|
|
2:ファイル準備
画像ファイルを全てloadpicディレクトリにコピーする
3:シェルスクリプト実行
a_dirディレクトリに移動して、『sh 下記のシェルスクリプト.sh』 を実行
4:EPSファイルができる
savepicにEPSファイルがある。
以降、2〜4を繰り返せばよい。(2は、変化や新規の物のみ)
convert.sh
#!/bin/sh
#########################################################
# 画像ファイルをEPSファイルへ変換
#
#
# 対象ファイル:jpg,JPG,png,PNG
#
# 使用するコマンド:convert,md5
# 環境
# OS:Mac OS X 10.9
#
#
#
#
#########################################################
#グローバル変数
#グローバル変数:コマンド
C_CONVERT="/usr/local/bin/convert" #画像変換コマンド
C_HASH="/sbin/md5" #ハッシュ値のコマンド
#グローバル変数:ディレクトリ
D_LOADPIC="./loadpic/" #画像の読み込み先
D_SAVEPIC="./savepic/" #画像の保存先
D_SAVEHASH="./savehash/" #ハッシュの保存、読み込み先
#グローバル変数:ファイル系
F_HASH_EXTENSION=".txt" #ハッシュファイルの拡張子
F_EPS_EXTENSION=".eps" #epsファイルの拡張子
#########################################################
#関数
myconvert() {
#編集準備
loadfilename=$1 #引数1つ目:読み込みファイル名
loadfilenamepass=$D_LOADPIC$loadfilename #読み込みファイルのパス
savefilehashfilepass=$D_SAVEHASH$loadfilename$F_HASH_EXTENSION #ハッシュファイル相対パス
savefilefilenamepass=$D_SAVEPIC${loadfilename%.*}$F_EPS_EXTENSION #保存ファイルのパス
#ハッシュファイルの存在を調べて、なければつくる
if [ ! -f $savefilehashfilepass ]
then
echo "新しいファイル発見:"$loadfilename
touch $savefilehashfilepass #ハッシュファイル作成
fi
#前回のファイルのハッシュ値取得
before_loadfilehashdata=`cat "${savefilehashfilepass}" `
#現ファイルのハッシュ値取得
now_loadfilehashdata=`"${C_HASH}" "$loadfilenamepass" |cut -d " " -f4 `
#ハッシュ値比較
if [ ! "$now_loadfilehashdata" = "$before_loadfilehashdata" ];
then
#違う場合
echo "ハッシュ不一致です"
echo "$now_loadfilehashdata" > "$savefilehashfilepass" #ハッシュ値保存
`"${C_CONVERT}" "$loadfilenamepass" "$savefilefilenamepass"` #EPS変換
else
#一緒の場合
echo "ハッシュ一致"
fi
}
#準備
#存在を確かめる:画像変換コマンド
if [ ! `which "${C_CONVERT}"` ];
then
echo "convertコマンドがありません。"
exit
else
echo ""
#echo "convertコマンド発見"
fi
#存在を確かめる:ハッシュコマンド
if [ ! `which "${C_HASH}"` ];
then
echo "hashコマンドがありません。"
exit
else
echo ""
#echo "hashコマンド発見"
fi
#存在を確かめる:画像の読み込み元のディレクトリ
if [ ! -d $D_LOADPIC ]
then
echo "loadpicがありません。"
mkdir $D_LOADPIC #画像読み込みディレクトリ作成
exit
fi
#存在を確かめる:画像の書き込みのディレクトリ
if [ ! -d $D_SAVEPIC ]
then
echo "savepicがありません。"
mkdir $D_SAVEPIC #画像書き込みディレクトリ作成
fi
#存在を確かめる:ハッシュ読み込み書き込みのディレクトリ
if [ ! -d $D_SAVEHASH ]
then
echo "hashdirがありません。"
mkdir $D_SAVEHASH #ハッシュディレクトリ作成
fi
#画像変換
#画像変換:JPG
FIND_EXETENSION="*.JPG"
FILE_NUM=`ls loadpic|grep JPG |wc -l`
if [ $FILE_NUM != 0 ]
then
for infile in $D_LOADPIC$FIND_EXETENSION;
do
FIND_FILENAME=`echo "$infile" |cut -d "/" -f3`
myconvert $FIND_FILENAME
#convert $infile ${infile%.*}.eps;
done
fi
#画像変換:PNG
FIND_EXETENSION="*.PNG"
FILE_NUM=`ls loadpic|grep PNG |wc -l`
if [ $FILE_NUM != 0 ]
then
for infile in $D_LOADPIC$FIND_EXETENSION;
do
FIND_FILENAME=`echo "$infile" |cut -d "/" -f3`
myconvert $FIND_FILENAME
#convert $infile ${infile%.*}.eps;
done
fi
#画像変換:jpg
FIND_EXETENSION="*.jpg"
FILE_NUM=`ls loadpic|grep jpg |wc -l`
if [ $FILE_NUM != 0 ]
then
for infile in $D_LOADPIC$FIND_EXETENSION;
do
FIND_FILENAME=`echo "$infile" |cut -d "/" -f3`
myconvert $FIND_FILENAME
#convert $infile ${infile%.*}.eps;
done
fi
#画像変換:png
FIND_EXETENSION="*.png"
FILE_NUM=`ls loadpic|grep png |wc -l`
if [ $FILE_NUM != 0 ]
then
for infile in $D_LOADPIC$FIND_EXETENSION;
do
FIND_FILENAME=`echo "$infile" |cut -d "/" -f3`
myconvert $FIND_FILENAME
#convert $infile ${infile%.*}.eps;
done
fi
改造は、例の下の方を変えるだけ