Copy link to clipboard
Copied
I may be asking this wrong so i'll attach a picture illustrating what i am looking for.
Thanks in advance
For your convenience....
.../////////////////////////////////////////////////////////////////
// Render Swatch Legend v1.3 -- CC
//>=--------------------------------------
//
// This script will generate a legend of rectangles for every swatch in the main swatches palette.
// You can configure spacing and value display by configuring the variables at the top
// of the script.
// update: v1.1 now tests color brightness and renders a white label if the color is dark.
// update: v1.2 uses adobe colour
Copy link to clipboard
Copied
You could use this script that is already available... and modify to suit your needs....
Copy link to clipboard
Copied
For your convenience....
/////////////////////////////////////////////////////////////////
// Render Swatch Legend v1.3 -- CC
//>=--------------------------------------
//
// This script will generate a legend of rectangles for every swatch in the main swatches palette.
// You can configure spacing and value display by configuring the variables at the top
// of the script.
// update: v1.1 now tests color brightness and renders a white label if the color is dark.
// update: v1.2 uses adobe colour converter, rather than rgb colour conversion for a closer match.
// update: v1.3 adds multiple colour space values based on array printColors.
//>=--------------------------------------
// JS code (c) copyright: John Wundes ( john@wundes.com ) www.wundes.com
// copyright full text here: http://www.wundes.com/js4ai/copyright.txt
//
// Edits by Adam Green (@wrokred) www.wrokred.com
//
//////////////////////////////////////////////////////////////////
doc = activeDocument,
swatches = doc.swatches,
cols = 4, // number of columns in group
displayAs = "RGBColor", //or "CMYKColor"
printColors = ["RGB", "CMYK", "LAB", "GrayScale"], // RGB, CMYK, LAB and/or GrayScale
colorSeparator = " ", // Character used to separate the colours eg "|" output = R: XXX|G: XXX|B: XXX
textSize = 10, // output text size value in points
rectRef=null,
textRectRef=null,
textRef=null,
swatchColor=null,
w=150;
h=120,
h_pad = 10,
v_pad = 10,
t_h_pad = 10,
t_v_pad = 10,
x=null,
y=null,
black = new GrayColor(),
white = new GrayColor()
;
black.gray = 100;
white.gray = 0;
activeDocument.layers[0].locked= false;
var newGroup = doc.groupItems.add();
newGroup.name = "NewGroup";
newGroup.move( doc, ElementPlacement.PLACEATBEGINNING );
for(var c=2,len=swatches.length;c<len;c++)
{
var swatchGroup = doc.groupItems.add();
swatchGroup.name = swatches
.name; x= (w+h_pad)*((c-2)% cols);
y=(h+v_pad)*(Math.round(((c)+.03)/cols))*-1 ;
rectRef = doc.pathItems.rectangle(y,x, w,h);
swatchColor = swatches
.color; rectRef.fillColor = swatchColor;
textRectRef = doc.pathItems.rectangle(y- t_v_pad,x+ t_h_pad, w-(2*t_h_pad),h-(2*t_v_pad));
textRef = doc.textFrames.areaText(textRectRef);
textRef.contents = swatches
.name + "\r" + getColorValues(swatchColor); textRef.textRange.fillColor = is_dark(swatchColor)? white : black;
textRef.textRange.size = textSize;
rectRef.move( swatchGroup, ElementPlacement.PLACEATBEGINNING );
textRef.move( swatchGroup, ElementPlacement.PLACEATBEGINNING );
swatchGroup.move( newGroup, ElementPlacement.PLACEATEND );
}
function getColorValues(c)
{
if(c.typename)
{
if (c.typename == "SpotColor") {
return getColorValues(c.spot.color);
};
switch(c.typename)
{
case "RGBColor": sourceSpace = ImageColorSpace.RGB; colorComponents=[c.red,c.green,c.blue]; break;
case "CMYKColor": sourceSpace = ImageColorSpace.CMYK; colorComponents=[c.cyan,c.magenta,c.yellow,c.black]; break;
case "LabColor": sourceSpace = ImageColorSpace.LAB; colorComponents=[c.l,c.a,c.b]; break;
case "GrayColor": sourceSpace = ImageColorSpace.GrayScale; colorComponents=[c.gray]; break;
}
outputColors = new Array();
for (var i = printColors.length - 1; i >= 0; i--) {
targetSpace = ImageColorSpace[printColors];
outputColors = app.convertSampleColor(sourceSpace, colorComponents, targetSpace,ColorConvertPurpose.previewpurpose);
for (var j = outputColors.length - 1; j >= 0; j--) {
outputColors
= printColors.charAt(j)+": "+Math.round(outputColors ); if (j == outputColors.length -1) {
outputColors
+= "\r"; };
};
outputColors = outputColors.join(colorSeparator);
};
return outputColors.join("");
}
return "Non Standard Color Type";
}
function is_dark(c){
if(c.typename)
{
switch(c.typename)
{
case "CMYKColor":
return (c.black>50 || (c.cyan>50 && c.magenta>50)) ? true : false;
case "RGBColor":
return (c.red<100 && c.green<100 ) ? true : false;
case "GrayColor":
return c.gray > 50 ? true : false;
case "SpotColor":
return is_dark(c.spot.color);
return false;
}
}
}
Copy link to clipboard
Copied
I downloaded the ZIP file with all the scripts in it. I am currently Editing this one. Thank you for this. It seems this will do just what i want it to do.