クリエイター手抜きプロジェクト[126]Photoshop CS/CS2編 CSVデータ値に対応したメッシュを描く/古籏一浩

投稿:  著者:  読了時間:4分(本文:約1,700文字)


前回のスクリプトはIllustrator上で動作するものでしたが、今回はPhotoshop CS/CS2版です。基本的には前回と同じです。パラメータ等の設定なども同じです。ただ、Illustratorの場合は原点が左下になるのに対して(数学座標系)、Photoshopでは左上が原点になります。

このため、開始Y座標の値はIllustratorとは逆に小さい値にしておくようにしてください。


rectW = 10; // メッシュの横幅
rectH = 10; // メッシュの縦幅
startX = x = 0; // 開始X座標
y = 0; // 開始Y座標
docObj = app.activeDocument;
filename = File.openDialog("CSVファイルを指定してください");
if (filename)
{
fileObj = new File(filename);
flag = fileObj.open("r");
if (flag == true)
{
while (!fileObj.eof)
{
pointData = fileObj.readln();
data = pointData.split(",");
for (i=0; i< data.length; i++)
{
drawRect(x, y, data[i]);
x = x + rectW;
}
x = startX;
y = y + rectH;
}
fileObj.close();
}else{
alert("CSVファイルが開けませんでした");
}
}

function setColor(r,g,b)
{
RGBColor = new SolidColor();
RGBColor.red = r;
RGBColor.green = g;
RGBColor.blue = b;
}

function drawRect(x, y, value)
{
setColor(0,0,0);
if (value < 10) setColor(0,0,128); // 暗い青
if ((value >= 10) && (value < 20)) setColor(128,0,0); // 暗い赤
if ((value >= 20) && (value < 30)) setColor(0,128,0); // 暗い緑
if ((value >= 30) && (value < 40)) setColor(0,0,255); // 明るい青
if (value >= 40) setColor(255,255,192); // 明るい黄色
selReg = [[x,y],[x+rectW,y],[x+rectW,y+rectH],[x,y+rectH]];
activeDocument.selection.select(selReg);
activeDocument.selection.fill(RGBColor,ColorBlendMode.NORMAL, 100, false);
}


【古籏一浩】openspc@po.shiojiri.ne.jp
< http://www.openspc2.org/ >
Tera Stationの3TBモデルを買いました。RAID 5で使うので2.25TBですが、さすがにこれだけあると安心して映像追加ができます。という事でハイビジョン映像をかなり追加しました。3900点近くになりました。目標の5000点まで、あと1100。でもサーバーのHDDが、いっぱいなので5000点までは難しそうです。
< http://www.openspc2.org/HDTV/ >

JavaScriptテクニックブックがそのうち発売されます。まだ、アマゾンでは載っていませんが、他の所から注文することができます。今までのと少し違ってHTML、CSS、JavaScriptコードが分離されているので役に立つのではないかと思います。

■JavaScriptテクニックブック
< http://books.yahoo.co.jp/book_detail/r0256285/ >
< http://www.7andy.jp/books/detail?accd=R0256285 >

photo
JavaScriptテクニックブック
古籏 一浩
シーアンドアール研究所 2007-04-24

by G-Tools , 2007/04/23