2015-10-17 71 views
0

我遇到了FillColor属性的一个小问题。从脚本引用看来,它可以用RGB颜色来设置它。为字符设置FillColor

RGBColor RGB = new RGBColor(); 
.CharacterAtributes.FillColor = RGB; 

但我不断收到错误,如果我试图倒转

RGB = .CharacterAtributes.FillColor; 

即使添加引用RGB颜色

RGB = .CharacterAtributes.FillColor.RGBColor; 

据我所知,FillColorcolor对象,包含对象RGBColor。但是,如果我检查调试,它只包含CMYK值为double。它是已知的故障,或者我失去了一些东西来获取填充颜色为RGB?

谢谢

米哈尔

回答

0

我的颜色对象的方式工作是填充颜色将包含一个颜色对象,将有以下子类之一的理解:

CMYKColor 
GradientColor 
GrayColor 
LabColor 
NoColor 
PatternColor 
RGBColor 
SpotColor 

这听起来就像您的填充颜色设置为CMYKColor一样,如果您需要RGBColor,则必须从CMYK进行转换并使用转换的值创建它。在我知道的脚本API中没有内置颜色转换库,但有几个库可用。这里是我发现的一个快速Javascript color conversion RGB, CMYK and HSV

祝你好运。

+0

从我这里看到:HTTP: //stackoverflow.com/questions/8672714/changing-colors-in-illustrator-with-javascript它们可以获得FillColor的Reg/Green/Blue属性。我想知道为什么我可以将GRBColor分配给FillColor,但没有将FillColor分配给RGBColor。 –

+0

如果FillColor当前拥有CMYKColor对象,则无法通过赋值将其转换为RGBColor对象。 FillColor可以为其分配任何类型的颜色对象,但RGBColor对象只能分配给它们的RBG值。这就是我的理解。 – TinMonkey

0

我在我对FillColor的理解中看到了错误。这将任何类,不

CMYKColor 
GradientColor 
GrayColor 
LabColor 
NoColor 
PatternColor 
RGBColor 
SpotColor 

在这种情况下,分配新建分配FY应该是这样的:

RGB.Red = .CharacterAtributes.FillColor.Red; 
RGB.Green = .CharacterAtributes.FillColor.Green; 
RGB.Blue = .CharacterAtributes.FillColor.Blue; 

迈克尔

+0

FillColor是Color的一个实例: Illustrator中使用的所有颜色类的抽象父类。子类有: CMYKColor GradientColor GrayColor LabColor NOCOLOR PatternColor RGBColor SpotColor – TinMonkey