クリエイター手抜きプロジェクト[200]Photoshop CS/CS2/CS3/CS4編 PhotoshopのパスをCSV形式に変換する/古籏一浩

投稿:  著者:  読了時間:5分(本文:約2,000文字)


前回はPhotoshopのパスをKMLに変換しましたが、座標値をCSV形式(カンマ区切り)として利用したい場合もあります。CSV形式だとエクセルなどで処理することもできますし、何よりシンプルで扱いやすいというメリットがあります。また、Web上で使う場合、KMLでなくJSON/JSONP形式にしておいた方が便利な場合もあります。

以下のスクリプトは、アクティブになっているレイヤー(パスのあるレイヤー)の、パスポイントの座標値をファイルに書き出します。なお、このスクリプトは前回同様、地図をトレースした際に利用するものになっています。このため、キャンバス上のピクセル単位での座標値を取得したい場合には、別のスクリプトを使う必要があります(可能なら、以下のスクリプトを手直しして使ってください)。

上側の緯度、左側の経度に0を指定し、下側の緯度にキャンバスの高さ、右側の経度にキャンバスの横幅を指定して変換する方法もありますが、計算の都合上、パスポイント座標値に誤差が発生することがあります。



LF = String.fromCharCode(10);
docW = activeDocument.width.value;
docH = activeDocument.height.value;

function mapPathCSV(){
var pObj = activeDocument.pathItems[0];
var result = "";
var pp = pObj.subPathItems[0].pathPoints;
for(var i=0; i< pp.length; i++){
var x = pp[i].anchor[0];
var y = pp[i].anchor[1];
x = gLeft + (x / docW) * gDX;
y = gTop - (y / docH) * gDY;
result += x+","+y+ LF;
}
return result;
}
(function(){
var layObj = activeDocument.activeLayer;
if(layObj.kind != LayerKind.SOLIDFILL){
alert("パスで塗りつぶされたレイヤーを選択してから実行してください");
return;
}
gTop = prompt("上側の緯度を入れて下さい",0);
if (!gTop) return;
gBottom = prompt("下側の緯度を入れて下さい",0);
if (!gBottom) return;
gLeft = prompt("左側の経度を入れて下さい",0);
if (!gLeft) return;
gRight = prompt("右側の経度を入れて下さい",0);
if (!gRight) return;
gTop = parseFloat(gTop);
gBottom= parseFloat(gBottom);
gLeft= parseFloat(gLeft);
gRight= parseFloat(gRight);
gDX = gRight-gLeft;
gDY = gTop-gBottom;
var text = mapPathCSV();
var fileObj = File.saveDialog("保存ファイル名を入れて下さい");
if (fileObj){
var flag = fileObj.open("w");
if (flag == true){
fileObj.write(text);
fileObj.close();
alert("変換が終了しCSV形式でデータを保存しました");
}else{
alert("ファイルが作成できませんでした");
}
}
})();



【古籏一浩】openspc@po.shiojiri.ne.jp
< http://www.openspc2.org/ >

成田空港で飛行機が墜落炎上しましたが、関係ないだろうと思ってました。が、その飛行機に今月発売する商品の原材料が積まれてました(@_@)。びっくり。商品は当然発売延期で、2〜3ヶ月後になってしまうとのこと。

今年も3月に塩尻市の道路景観を撮影してきました。新しい店も少し増えましたが、マンションなどは空き家ばかりで、不動産屋の看板が目立ちます。

・(道路)景観アーカイブ
< http://www.openspc2.org/travel/ >

photo
Google Maps API逆引きクイックリファレンス―WEB2.0対応
古籏 一浩
毎日コミュニケーションズ 2006-09
おすすめ平均 star
star簡単にできます
starようやく出ました。使えるGoogleMapsリファレンス。

Google Maps API徹底活用ガイド Google Maps APIv2活用リファレンス Google Maps Hacks 第2版 ―地図検索サービスをもっと活用するテクニック Web API実践リファレンスブック PHP×WebサービスAPIコネクションズ



photo
改訂第4版 JavaScript ポケットリファレンス
古籏 一浩
技術評論社 2006-10-18
おすすめ平均 star
starJavaScriptを使ったプロジェクトのお供に是非
starJavaScript仮免者以上の方へ
starバランスの良いバイブル
star中級者向けです。

[改訂版] PHP ポケットリファレンス (Pocket reference) 改訂第5版 オールカラー  HTML ポケットリファレンス (POCKET REFERENCE) 改訂新版 SQLポケットリファレンス (Pocket reference) スタイルシート ポケットリファレンス (Pocket reference) [改訂版] VBScriptポケットリファレンス (POCKET REFERENCE)

by G-Tools , 2009/03/30