【问题标题】:Set FillColor for Character为字符设置 FillColor
【发布时间】:2015-10-23 17:34:20
【问题描述】:

我对 FillColor 属性有一点问题。从脚本参考看来,它似乎可以设置为 RGB 颜色。

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

但是如果我尝试反转它,我会不断出错

RGB = .CharacterAtributes.FillColor;

即使添加对 RGB 颜色的引用

RGB = .CharacterAtributes.FillColor.RGBColor;

据我所知,FillColor 应该是包含RGBColor 对象的color 对象。但是如果我检查调试它只包含双倍的 CMYK 值。是否已知故障,或者我缺少将填充颜色作为 RGB 的东西?

谢谢,

米哈乌

【问题讨论】:

    标签: adobe-illustrator


    【解决方案1】:

    我对颜色对​​象如何工作的理解是,FillColor 将包含一个颜色对象,该对象将具有以下子类之一:

    CMYKColor
    GradientColor
    GrayColor
    LabColor
    NoColor
    PatternColor
    RGBColor
    SpotColor
    

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

    祝你好运。

    【讨论】:

    • 从我在这里看到的:stackoverflow.com/questions/8672714/… 他们可以获得 FillColor 的 Reg/Green/Blue 属性。我想知道为什么我可以将 GRBColor 分配给 FillColor,但不能将 FillColor 分配给 RGBColor。
    • 如果 FillColor 当前持有 CMYKColor 对象,则无法通过赋值将其转换为 RGBColor 对象。 FillColor 可以分配任何类型的颜色对象,但 RGBColor 对象只能分配 RBG 值。我是这么理解的。
    【解决方案2】:

    我发现我对 FillColor 的理解有误。它将任何这些类,而不是拥有

    CMYKColor
    GradientColor
    GrayColor
    LabColor
    NoColor
    PatternColor
    RGBColor
    SpotColor
    

    在这种情况下,分配应该如下所示:

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

    迈克尔

    【讨论】:

    • FillColor 是 Color 的一个实例:Illustrator 中使用的所有颜色类的抽象父类。子类是: CMYKColor GradientColor GrayColor LabColor NoColor PatternColor RGBColor SpotColor
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-03
    • 1970-01-01
    • 2023-03-09
    • 2016-12-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多