var doc = app.activeDocument;
var mSel = doc.selection;
var LL = new Array(6);
var AA = new Array(6);
var BB = new Array(6);
var DD = new Array(6);
function convertColor(src, dest, clrArr)
{
return app.convertSampleColor(ImageColorSpace[src], clrArr, ImageColorSpace[dest], ColorConvertPurpose.defaultpurpose);
}
function AddV(n,a){
r=Math.round(n+a);
if (r>100) {r=100}
if (r<0) {r=0}
return r;
}
function setval(lab,i,labs){
LL[i]=lab[0];
AA[i]=lab[1];
BB[i]=lab[2];
DD[i]=Math.sqrt(
Math.pow(labs[0]-LL[i],2)+
Math.pow(labs[1]-AA[i],2)+
Math.pow(labs[2]-BB[i],2));
return;
};
for (i=0; i < mSel.length; i++)
{
if (mSel[i].filled == true)
{
var color = mSel[i].fillColor;
var labs = convertColor("CMYK", "LAB", [
Math.round(color.cyan),
Math.round(color.magenta),
Math.round(color.yellow),
Math.round(color.black)]);
color.black = 0;
var goo = true;
var maxDD=10000000000;
while (goo){
goo=false;
var lab = convertColor("CMYK", "LAB", [AddV(color.cyan,1), AddV(color.magenta,0), AddV(color.yellow,0), 0]);
setval(lab,0,labs);
if (maxDD>DD[0]){maxDD=DD[0]; goo=true; color.cyan=color.cyan+1}
var lab = convertColor("CMYK", "LAB", [AddV(color.cyan,-1), AddV(color.magenta,0), AddV(color.yellow,0), 0]);
setval(lab,1,labs);
if (maxDD>DD[1]){maxDD=DD[1]; goo=true; color.cyan=color.cyan-1}
var lab = convertColor("CMYK", "LAB", [AddV(color.cyan,0), AddV(color.magenta,1), AddV(color.yellow,0), 0]);
setval(lab,2,labs);
if (maxDD>DD[2]){maxDD=DD[2]; goo=true; color.magenta=color.magenta+1}
var lab = convertColor("CMYK", "LAB", [AddV(color.cyan,0), AddV(color.magenta,-1), AddV(color.yellow,0), 0]);
setval(lab,3,labs);
if (maxDD>DD[3]){maxDD=DD[3]; goo=true; color.magenta=color.magenta-1}
var lab = convertColor("CMYK", "LAB", [AddV(color.cyan,0), AddV(color.magenta,0), AddV(color.yellow,1), 0]);
setval(lab,4,labs);
if (maxDD>DD[4]){maxDD=DD[4]; goo=true; color.yellow=color.yellow+1}
var lab = convertColor("CMYK", "LAB", [AddV(color.cyan,0), AddV(color.magenta,0), AddV(color.yellow,-1), 0]);
setval(lab,5,labs);
if (maxDD>DD[5]){maxDD=DD[5]; goo=true; color.yellow=color.yellow-1}
}
}}