全ての画像ファイルをEPSファイルに変換する

卒論書いているときにEPSファイルへの変換面倒なので。

<del>さぼり</del>　気分転換に書きました
Texる時に便利かも

機能
・画像ファイルを全てepsファイルに変えます
・また、ハッシュ値を見て、変化があったものにだけ処理
・対象ファイル:jpg,JPG,png,PNG

実験環境
・MacOSX10.9
・md5コマンドとconvertコマンドがうごく(imagemagickだったかを入れると入る。)
・その他のコマンドもいるけど、普通入ってると思う(自分が手動で入れた覚えがないため)

実行方法
１：下記ディレクトリ構造にする
a_dir
|
|-----下記のシェルスクリプト.sh
|
|-----/loadpic
|
|-----/savepic
|
|-----/savehash
|
|

２：ファイル準備
画像ファイルを全てloadpicディレクトリにコピーする

３：シェルスクリプト実行
a_dirディレクトリに移動して、『sh 下記のシェルスクリプト.sh』　を実行

４：EPSファイルができる
savepicにEPSファイルがある。

以降、２〜４を繰り返せばよい。(２は、変化や新規の物のみ)






```bash: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 #引数１つ目:読み込みファイル名
		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

```
改造は、例の下の方を変えるだけ