バスマップAdventCalendar6日目の記事です
前回はことづさんがillustratorで使える便利スクリプトを紹介しました、すごいですね
- バスマップAdventCalendar
- 詳細はこちら
はじめに
作業手順的にはここの続きです
みなさんはズームレベル15のタイル画像を生成し終わってから、一つ数字が小さいズームレベル14のタイル画像も欲しいと思ったことはありませんか。さらにレベル15の画像を元にこれを生成したいと思ったことはありませんか。僕はあります。現状僕がやってる作業を紹介します。
もっと言えば、これより効率のいいやり方を教えて欲しいがために書きます。
用意する物
- ズームレベル15の画像群
- E-Rename(フリーソフト・タイル画像の名前を一括変更する用)
- ImageMerge(フリーソフト・画像結合用)
- リサイズ超簡単!Pro(フリーソフト・結合した画像のリサイズ用)
やりたいことの概念の説明
この記事までたどり着いた人には不要そうですが、地図タイルやズームレベルの概念の詳しい説明は国土地理院がしていますのでこちらを参照してください(丸投げ)
下の図のようなことをします
画像結合の下準備
画像結合自体は「ImageMerge」というフリーソフトを用います
このソフトを用いて一発で画像結合できる!楽!と思ったら大間違い、この子は複数の画像を1行または1列に整列して1つの画像にしてくれることは出来るのですが、2×2、合わせて4枚を1つにしてくれるような機能は無いのです…
ただ、ソフトの設定を見ると…
画像を結合するときに「画像名の末尾の数字」を判定して共通した名前を出力してくれるそうです
こんな感じ↓
これを活用します
ただし、先に述べた通りこのソフトは複数の行、列しか出来ないので、
最初に縦を結合、次に行を結合していきます
最初にやる作業としては、末尾で判定してくれるように画像の名前を変更します
まず、名前をcsvを用いて一括で変更するソフト「E-Rename」を起動して、タイル画像が眠っているファイルを参照します
こんな感じで設定して、新規編集をクリック
Excelでcsvが開きました
この子たちの名前を先ほどのように関数を使って変更します
まず名前をアンダーバー(_)の前後で分割します
C列には =LEFT(B2,FIND("_",B2)-1)
D列には =RIGHT(B2,LEN(B2)-(FIND("_",B2)))
と入力して後ろにざばーとコピーします
後の為にこれを結合してアンダーバー無しの名前を作ります
E列に =CONCATENATE(C2,D2)
このままではE列は文字列になるのでF列にコピーして数値に変換し、いろいろ計算に扱えるようにします
コピーしてF列に値で貼り付け
2行目から下を全部選択して「数値に変換する」をクリック
つづいて、G列とH列にズームレベル14の名前の素材を作ります
難しくはなく、単純にズームレベル15のアンダーバーの前後それぞれを2で割って小数点以下を切り捨てるだけでズームレベル14の名前のアンダーバー前後になります
G列に =ROUNDDOWN(C2/2,0)
H列に =ROUNDDOWN(D2/2,0)
I列にはこの2つを結合した数字を関数で入れます
なので、I列には =CONCATENATE(G2,H2)
また同じようにJ列にはI列を値で張り付けて数値に変換します
そして、K列には各ズームレベル15の画像がズームレベル14のどの位置になるか分類する関数を入れます
K列には =COUNTIFS(J:J,J2,F:F,"<"&F2)+1
K列に関する詳しい解説↓
こんな感じでExcelが出来ます
続いて、この4つ分類を末尾2桁部分に変換します
L列には =IFS(K2=1,11,K2=2,12,K2=3,21,K2=4,22)
L列の解説↓
入れるとこんな感じ↓
M列にI列のアンダーバー入りを作ってズームレベル14の名前を完成させます
M列に =CONCATENATE(G2,"_",H2)
さらにM列とN列を合体させてリネームの完成形を作ります
L列に =CONCATENATE(M2,L2)
こんな感じになります↓
L列は関数なので、コピーしてN列に値で貼り付けをしてください↓
あとはB列からN列を削除してB1を「名前」に変更します↓
↑ここまできたら保存して閉じてください
↑この画面に戻って「適用」をクリック
リネームが終わったことを確認します
これで下準備はおわり
画像結合
「ImageCoupler」を立ち上げて、入力フォルダにリネームしたズームレベル15の画像フォルダ、出力フォルダに空のファイルを用意します
連結設定にはまずは「縦」で連結数は「2」にします
ファイル名設定は上から「末尾」「数字」「共通部」にします
↓の画像のようになればOK
実行をクリックします
終わり次第、入力フォルダを縦に連結した画像を入れたフォルダ、出力フォルダには空のものを用意します
次は連結設定の連結方向を「横」にして同じように実行
これで連結完了です
画像リサイズ
このままでは生成したズームレベル14の画像は4倍の大きさになってしまっているので、フリーソフト「リサイズ超簡単Pro」を利用して、大きさをそろえます
ズームレベル14の画像をダイレクトにドラッグアンドドロップ、空のフォルダを参照して、フォーマットをPNGにして実行
これでリサイズも終わり、正式な?ズームレベル14の画像の完成です
おわりに
冒頭にも述べた通りこれより簡単な方法があれば至急連絡を