Edited at

指定座標からRGB値を取得してファイルに書き出す

More than 5 years have passed since last update.

さらに変更してスクリプトを直に編集しなくていいように


Photoshop2RGBfile3.jsx

#target photoshop

/*
指定したフォルダ中のjpeg画像を順次開き、指定座標(4つ)からRGB値を取得して
ファイル名と共にファイルに書き出します。
実行すると、
・xy座標を入力してください。例)0,0,100,0,100,100,0,100
・書き出し先ファイル名を聞いてきますので指定してください。
・処理するjpegファイルのあるフォルダを指定してください。
*/

//入力XY座標を振り分け
var myPrompt=prompt("x,y,x,y,…と入力");
var myXY=myPrompt.split(",");
var myX=myY=[];
//if (myPrompt !=undefined){ ここ意味ないなー
for (var i=0,a=0;i<myXY.length/2;i++,a=a+2){
myX[i]=myXY[a];myY[i]=myXY[a+1];
}
// }

//保存先
//var mySavePath = File.saveDialog ("保存先");
var myResult = new File(File.saveDialog("書き出し先"));

var myDir = Folder.selectDialog("フォルダ選択");
//jpegファイルのみ読み込む
var myFiles = myDir.getFiles('*.jpg');
var myText =[];

for (var i=0; i<myFiles.length; i++){
var myDoc = app.open(myFiles[i]);
var mySampl = myDoc.colorSamplers.add([0,0]);
var myNum =[];

for (var a=0; a<myXY.length/2; a++){
mySampl.move([myX[a],myY[a]]);
var myColor = mySampl.color;
//CMYKの場合はmyColor.cmyk.cyan、magenta,、yellow、blackにする
myNum.push(
Math.round(myColor.rgb.red)+'/'+
Math.round(myColor.rgb.blue)+'/'+
Math.round(myColor.rgb.green));
}
if(myResult.open("a")){
myResult.write(myDoc.name + '\t'+myNum.join('\t')+'\n')
myResult.close();
}
myDoc.close(SaveOptions.DONOTSAVECHANGES);
}
alert("終了しました");


古いの↓


Photoshop2RGBfile2.jsx

#target photoshop

/*
指定したフォルダ中のjpeg画像を順次開き、指定座標(4つ)からRGB値を取得して
ファイル名と共にファイルに書き出します。
XY座標値を書き換えてください。

*/
//XY座標を記入
var myXPos= [0,100,100,0];
var myYPos= [0,0,100,100];

//保存先
//var mySavePath = File.saveDialog ("保存先");
var myResult = new File(File.saveDialog("書き出し先"));

var myDir = Folder.selectDialog("フォルダ選択");
//jpegファイルのみ読み込む
var myFiles = myDir.getFiles('*.jpg');
var myText =[];

for (var i=0; i<myFiles.length; i++){
var myDoc = app.open(myFiles[i]);
var mySampl = myDoc.colorSamplers.add([0,0]);
var myNum =[];

//座標数に合わせa<4の値を変更
for (var a=0; a<4; a++){
mySampl.move([myXPos[a],myYPos[a]]);
var myColor = mySampl.color;
//CMYKの場合はmyColor.cmyk.cyan、magenta,、yellow、blackにする
myNum.push(
Math.round(myColor.rgb.red)+'/'+
Math.round(myColor.rgb.blue)+'/'+
Math.round(myColor.rgb.green));
}
if(myResult.open("a")){
myResult.write(myDoc.name + '\t'+myNum.join('\t')+'\n')
myResult.close();
}
// myText.push(myDoc.name + '\t'+myNum.join('\t'));

myDoc.close(SaveOptions.DONOTSAVECHANGES);
}


↓古い


Photoshop2RGBfile.jsx

#target photoshop

/*
指定したフォルダ中のjpeg画像を順次開き、指定座標(4つ)からRGB値を取得して
ファイル名と共にファイルに書き出します。
XY座標値と、保存先のフルパスを書き換えてください。

*/
//XY座標を記入
var myXPos= [0,100,100,0];
var myYPos= [0,0,100,100];

//保存先のフルパスを記入
var myResult = new File('~/Desktop/test.txt');

var myDir = Folder.selectDialog("フォルダ選択");
//jpegファイルのみ読み込む
var myFiles = myDir.getFiles('*.jpg');
var myText =[];

for (var i=0; i<myFiles.length; i++){
var myDoc = app.open(myFiles[i]);
var mySampl = myDoc.colorSamplers.add([0,0]);
var myNum =[];

//座標数に合わせa<4の値を変更
for (var a=0; a<4; a++){
mySampl.move([myXPos[a],myYPos[a]]);
var myColor = mySampl.color;
//CMYKの場合はmyColor.cmyk.cyan、magenta,、yellow、blackにする
myNum.push(
Math.round(myColor.rgb.red)+'/'+
Math.round(myColor.rgb.blue)+'/'+
Math.round(myColor.rgb.green));
}
if(myResult.open("e")){
myResult.read();
myResult.write(myDoc.name + '\t'+myNum.join('\t')+'\n')
myResult.close();
}
// myText.push(myDoc.name + '\t'+myNum.join('\t'));

myDoc.close(SaveOptions.DONOTSAVECHANGES);
}