Xcode6からPDF形式でのVector画像をImageAssetに登録できるようになりました。
x1のサイズのベクター画像を用意しておけば各種サイズはXcodeがよしなにしてくれるステキ機能ですが、一括で大量のファイルを登録する方法が分かりませんでした。
ドラッグ&ドロップすれば登録はできるのだけど、初期値がVectorになってない・・・
というわけで、単純なものではありますが、その登録のお手伝いをするスクリプトを書いてみました。
そもそも、xcassetsは中身は単なるフォルダとファイルなので、そこに同じようにファイルを設置してやればよさそうです。
#/bin/sh
baseDirName="./Assets"
rm -fr ${baseDirName}
mkdir ${baseDirName}
contentsFilename="Contents.json"
for file in `find . -name "*.pdf" -type f`; do
dirname=`basename ${file} .pdf`.imageset
filename=${file}
filebasename=`basename ${file}`
mkdir ${baseDirName}/${dirname}
cp ${filename} ${baseDirName}/${dirname}/${filebasename}
contentsFilepath=${baseDirName}/${dirname}/${contentsFilename}
echo "{" >> ${contentsFilepath}
echo " \"images\" : [" >> ${contentsFilepath}
echo " {" >> ${contentsFilepath}
echo " \"idiom\" : \"universal\"," >> ${contentsFilepath}
echo " \"filename\" : \"${filebasename}\"" >> ${contentsFilepath}
echo " }" >> ${contentsFilepath}
echo " ]," >> ${contentsFilepath}
echo " \"info\" : {" >> ${contentsFilepath}
echo " \"version\" : 1," >> ${contentsFilepath}
echo " \"author\" : \"xcode\"" >> ${contentsFilepath}
echo " }" >> ${contentsFilepath}
echo "}" >> ${contentsFilepath}
done
不慣れなもので美しくありませんが許してください。
これを、pdfファイルがあるフォルダで実行すると、「Assets」というフォルダが作成され、その中にそれぞれのimagesetフォルダが出来ますので、このimagesetフォルダを、プロジェクトの Images.xcassets 以下にコピーしてやれば、Xcodeにも反映されるはずです。
改造すれば、すでにx1、x2として作成してある画像リソースも変換することができるかと思います。
簡単ですが、こんなところで。
※実はこんなことしなくてもXcodeに良い機能があったらごめんなさい。