我正在尝试获取文档色板的十六进制颜色。这是我所拥有的
function hexColor() {
var myDoc = app.activeDocument;
var myColors = myDoc.colors;
var swatches = myDoc.swatches;
var array = [];
for (var h = 0; h < swatches.length; h++) {
var mySwatches = swatches[h].name;
array.push(mySwatches);
}
alert(array);
}
我试图做色板[h] .ColorSpace.hexValue;
这不起作用。有什么想法吗?
得到了别人的帮助。对我有用的答案
app.activeDocument.rgbProfile="sRGB IEC61966-2.1"
var swatches = app.activeDocument.swatches;
var array = [];
for (var i = 0; i < swatches.length; i++) {
try {
array.push(rgbToHex(swatches[i]));
}
catch(e){}
}
alert(array);
}
//function to convert rgb to hex
function rgbToHex(s){
var hexStr = "";
var dup = s.duplicate();
dup.space = ColorSpace.RGB
var c = dup.colorValue;
for (var i = 0; i < c.length; i++) {
var hex = Number(c[i]).toString(16);
if (hex.length < 2) {
hex = "0" + hex;
}
hexStr += hex;
}
dup.remove();
return hexStr;
}