LoginSignup
4
5

More than 5 years have passed since last update.

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

Last updated at Posted at 2014-09-16

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

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);
    }
4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5