LoginSignup
2
2

More than 5 years have passed since last update.

任意の色グラデのCMYK分解カーブを画像化する

Last updated at Posted at 2016-04-02

Labを指定し、Lのみ0〜100したグラデのCMYK値をPhotoshopに吐き出させて、Bridgeで読み込み画像にします。
汚いけど一応うごくから触らない!(再

Photoshop環境設定のCMYKプロファイル+マッチング方法を設定しておいて実行。
カラーピッカーで任意の色を選択すると、デスクトップにプロファイル名+LabのA+LabのBのファイル名のテキストを書き出す。

PhotoshopCMYK.jsx
#target photoshop
var myColor = new SolidColor;
app.showColorPicker();

var doc = app.documents.add(100, 50, 72, "CMYK Separation Curves", NewDocumentMode.CMYK);
var profile_name = doc.colorProfileName;
var myFColor = app.foregroundColor.lab.a+'_'+app.foregroundColor.lab.b;
doc.close(SaveOptions.DONOTSAVECHANGES);
profile_name=profile_name.replace (/\//g, '_');

var myFile=new File('~/Desktop/'+profile_name+'_'+myFColor);
myFile.open("w");
myFile.encoding='BINARY';
for (var myG=0;myG<101;myG++){
    myColor.lab.l=myG;
    myColor.lab.a = app.foregroundColor.lab.a;
    myColor.lab.b = app.foregroundColor.lab.b;
    myC = myColor.cmyk.cyan;
    myM = myColor.cmyk.magenta;
    myY = myColor.cmyk.yellow;
    myK = myColor.cmyk.black;
    myR = myColor.rgb.red;
    myGr = myColor.rgb.green;
    myB = myColor.rgb.blue;   
    myWrite = myG+"\t"+myR+"\t"+myGr+"\t"+myB+"\t"+myC+"\t"+myM+"\t"+myY+"\t"+myK;
    myFile.writeln(myWrite);

    }
myFile.close();

Bridgeで書き出したテキストを選択しておいて実行。
デスクトップにgrid.pngを置いておき、その上に描画する。
ファイル名はテキストファイル名+jpg

BridgeCMYKChart.jsx
#target "Bridge"
var myFile=app.document.selections;
var mySc=File(myFile[0].path);

var myLine=new Array();
mySc.open("r");
while(!mySc.eof){myLine.push(mySc.readln());}
mySc.close();

var myImg=new BitmapData(new File("~/Desktop/grid.png"));

var myAry=new Array();
for(var i=0;i<100;i++){
    myAry[i]=myLine[i].split("\t");

    var myColor=new Color(0,255,255);
    var myColor2 = new Color(myAry[i][1],myAry[i][2],myAry[i][3]);
    myDraw2(i*4,201,myColor2);
myDraw(i*4, 200-myAry[i][4]*2,myColor);
        var myColor=new Color(255,0,255);
myDraw(i*4, 200-myAry[i][5]*2, myColor);
        var myColor=new Color(255,255,0);
 myDraw(i*4, 200-myAry[i][6]*2, myColor);
        var myColor=new Color(0,0,0);
 myDraw (i*4, 200-myAry[i][7]*2, myColor);

}

myImg.exportTo(new File(myFile[0].path+".jpg"),100);

function myDraw(x,y,c){
    for(var a=0;a<4;a++){
        for(var b=0;b<2;b++){
    myImg.setPixel (x+a, y+b, c);
    }
}
}
function myDraw2(x,y,c){
    for(var a=0;a<4;a++){
        for(var b=0;b<20;b++){
    myImg.setPixel (x+a, y+b, c);
    }
}
}

grid.png

デスクトップに置いておく。

grid.png

2
2
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
2
2