CSVデータ値に対応したメッシュを描く

前回のスクリプトは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);
}



[サンプルをダウンロード]