2015-10-17 3 views
0

У меня есть небольшая проблема с атрибутом FillColor. Из справки по сценарию кажется, что можно установить его с цветом RGB.Set FillColor для персонажа

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

Но я получаю сообщение об ошибке при попытке перевернуть его

RGB = .CharacterAtributes.FillColor; 

Даже если добавить ссылку на RGB цвет

RGB = .CharacterAtributes.FillColor.RGBColor; 

Из того, что я знаю, FillColor должен быть color объект, который содержит объект RGBColor. Но если я проверяю debug, он содержит только значения CMYK как двойные. Известно ли это сбой, или мне не хватает чего-то, чтобы получить цвет заливки как RGB?

Спасибо,

Michal

ответ

0

Мое понимание того, как объекты цвет работы является то, что FillColor будет содержать объект цвета, который будет иметь один из следующих подразделов классов:

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, они могут получить свойство Reg/Green/Blue FillColor. Интересно, почему я могу назначить GRBColor для FillColor, но не FillColor для RGBColor. –

+0

Если FillColor в настоящее время содержит объект CMYKColor, он не может быть преобразован в объект RGBColor посредством назначения. FillColor может иметь назначенный ему объект цветового типа любого типа, но объекты RGBColor могут иметь только присвоенные им значения RBG. Вот как я это понимаю. – TinMonkey

0

Я вижу, что у меня была ошибка в моем понимании FillColor. Это будет быть любой из этих классов, не имеют:

CMYKColor 
GradientColor 
GrayColor 
LabColor 
NoColor 
PatternColor 
RGBColor 
SpotColor 

В этом случае распайке должен выглядеть следующим образом:

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

Michael

+0

FillColor - это пример цвета: Абстрактный родительский класс для всех классов цветов, используемых в Illustrator. Подклассы являются: CMYKColor GradientColor GrayColor LabColor NOCOLOR PatternColor RGBColor SpotColor – TinMonkey

Смежные вопросы