Определение цвета картинки в ворд (цвет/нецвет)

Программирование на Visual Basic for Applications
Македонский
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 18.07.2006 (Вт) 14:05

Определение цвета картинки в ворд (цвет/нецвет)

Сообщение Македонский » 18.07.2006 (Вт) 15:25

Пишу небольшой макрос, который определяет диапазоны страниц для печати на разных принтерах и выдает на печать. Подскажите как определить цвет картинки (цветная/нецветная) вставленной (или связаной) в документ.

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 18.07.2006 (Вт) 16:12

В общем случае - никак. Если известен формат каждой картинки, можно попробовать ее как-то обработать.

ЗЫ Возможно, есть извратный способ - пробегать по картинке и определять цвет каждого пикселя, а потом смотреть, является ли он оттенком серого... Но, если честно, в эту сторону думать как-то не хочется... :o
Быть... или не быть. Вот. В чём вопрос?

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 18.07.2006 (Вт) 16:28

Есть гораздо более простой способ.



У каждой InlineShape, коей является картинка, есть PictureFormat. А у него, соответственно, проперть ColorType, у которой есть значения:



msoPictureAutomatic

msoPictureBlackAndWhite

msoPictureGrayscale

msoPictureMixed

msoPictureWatermark



Они позволяют, понять что за картинка. Цвет, или не цвет.



UPD Иногда правда получается что картинка Ч.Б. а colortype у нее- Automatic. Тут уже ничего не попишешь :(

Македонский
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 18.07.2006 (Вт) 14:05

Сообщение Македонский » 18.07.2006 (Вт) 17:50

В нынешней версии фича анализирует название картинки (_color в конце). Но это работает только для связанных картинок. А вот для вставленных полностью надо что-то другое придумать. Насколько я понимаю они теряют полностью привязку к имени файла из которых были созданы.
Добрался я и до mso... констант, но хелпа нет. Нужна ваша помощь
Что такое Automatic, Mixed? Действительно ли константы отображают цветность картинки, ведь можно любой картинке присвоить любое значение константы?

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 18.07.2006 (Вт) 18:12

Значения такие (по списку сверху вниз).

1

3

2

-2

4



Hасчет mixed - я никогда их в реальной жизни не встречал ;)

Automatic - это значит, что картинка отрисовывается как она исходно есть, без принудительной интрепретации.

Македонский
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 18.07.2006 (Вт) 14:05

Сообщение Македонский » 18.07.2006 (Вт) 19:05

Ну, хоть что-то. И опять я в начале большого пути.
Респект :D

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 19.07.2006 (Ср) 10:14

Велкам :)

Если будут дальше вопросы то задавай :)


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 55

    TopList