На главную
Назад |
Содержание |
Вперед
Свойства фильтров
Имя | Тип | Ключ
| PIFilterCaseInfoProperty | 7*4 байт | 0x66696369L ('fici')
|
Основная особенность Photoshop - поддержка динамически составляемых слоев.
Слой содержит данные о цвете и прозрачности каждой точки. В первых версиях
редактора не было прозрачности. Абсолютно прозрачные точки имеют неопределенный
цвет. Фильтр может редактировать как цвет, так и прозрачность, например, при
пространственных искажениях (spatial distortions).
В Photoshop 3.0 реализовано гибкое представление данных о прозрачности.
PIFilterCaseInfoProperty управляет представлением данных плагина. Редактор,
сравнивая текущий формат данных с поддерживаемыми плагином вариантами,
может как-то преобразовать данные для передачи плагину. Если преобразование
невозможно, то плагин будет недоступен в меню.
Варианты представления данных:
Номер | Имя | Описание
| 1 | filterCaseFlatImageNoSelection
| Это фоновый слой или плоское изображение. Отсутствует прозрачность
и выделение.
| 2 | filterCaseFlatImageWithSelection
| Нет прозрачности, но может быть выделение, которое будет
представлено в виде маски.
| 3 | filterCaseFloatingSelection
| Данные изображения сопровождаются маской.
| 4 | filterCaseEditableTransparencyNoSelection
| Слой с редактируемой прозрачностью без выделения.
| 5 | filterCaseEditableTransparencyWithSelection
| Слой с редактируемой прозрачностью и выделением.
| 6 | filterCaseProtectedTransparencyNoSelection
| Слой с нередактируемой прозрачностью без выделения.
| 7 | filterCaseProtectedTransparencyWithSelection
| Слой с нередактируемой прозрачностью и выделением.
|
Если не поддерживается вариант редактируемой прозрачности, то Photoshop
попытается использовать нередактируемую прозрачность. Если плагин не может
обработать нередактируемую прозрачность без выделения, то слой будет
представлен с плавающим выделением.
Для каждого из 7 вариантов представления данных в свойстве определяется
4-х байтная структура:
PIProperty = record
inputHandling : byte;
outputHandling : byte;
flags1 : byte;
flags2 : byte;
end;
inputHandling и outputHandling
Поля inputHandling и outputHandling определяют пред-обработку и
пост-обработку данных изображения.
Режим обработки | Описание
| 0 = inCantFilter = outCantFilter
| Данный вариант не поддерживается плагином.
| 1 = inStraightData = outStraightData
| Редактор не должен преобразовывать данные.
|
Следующие три режима являются вариантами матирования и могут использоваться
при искажении и размытии.
Можно матировать данные, затем обработать и убрать цвет, добавленный
матированием.
В этих случаях матирование вычисляется по следующей формуле:
mattedValue = ((unmattedValue * transparency) + 128) / 255 +
((matConstant * (255 - transparency)) + 128) / 255
А дематирование вычисляется по формуле:
unmattedValue = ((mattedValue - matConstant) ./ transparency) +
matConstant
Где операция ./ представляет собой деление 8-битного числа с фиксированной
точкой и результатом в диапазоне от 0 до 255.
| 2 = inBlackMat = outBlackMat
| Матировать исходное изображение, используя черный цвет (значение 0),
основываясь на прозрачности. Или восстанавливать выходные данные, используя
черный цвет (значение 0) цвет.
| 3 = inGrayMat = outGrayMat
| Матировать исходное изображение, используя серый цвет (значение 128),
основываясь на прозрачности. Или восстанавливать выходные данные, используя
серый цвет (значение 128).
| 4 = inWhiteMat = outWhiteMat
| Матировать исходное изображение, используя белый цвет (значение 255),
основываясь на прозрачности. Или восстанавливать выходные данные, используя
белый цвет (значение 255).
| Режимы, применимые только к исходным данным
| 5 = inDefringe
| Заполнить абсолютно прозрачные области цветом ближайших определенных
пикселей.
| 6 = inBlackZap
| Установить черный цвет для абсолютно прозрачных пикселей.
| 7 = inGrayZap
| Установить серый цвет для абсолютно прозрачных пикселей.
| 8 = inWhiteZap
| Установить белый цвет для абсолютно прозрачных пикселей.
| 10 = inBackgroundZap
| Установить текущий цвет фона для абсолютно прозрачных пикселей.
| 11 = inForegroundZap
| Установить текущий цвет изображения для абсолютно прозрачных пикселей.
| Режимы, применимые только к выходным данным
| 9 = outFillMask
| Изображение заполняется в соответствии с маской прозрачности.
Режим доступен только при редактируемой прозрачности.
|
flags1
Поле | Значения
| 0 = PIFilterDontCopyToDestinationBit
| 0 = copySourceToDestanation 1 = doNotCopySourceToDestanation
| Обычно, перед вызовом фильтра
выходные данные заполняются исходными значениями. Это бесполезно для фильтра,
который устанавливает значение всех точек. Установка этого бита отключает
подготовительное заполнение.
| 1 = PIFilterWorksWithBlankDataBit
| 0 = doesNotWorkWithBlankData 1 = workWithBlankData
| Указывает, может ли фильтр
обрабатывать "пустые" (полностью прозрачные) области изображения. Если не
может, то попытка фильтра получить доступ к пустым областям вызовет ошибку.
Свойство применимо только к варианту редактируемой прозрачности.
| 2 = PIFilterFiltersLayerMaskBit
| 0 = doesNotFilterLayerMasks 1 = filtersLayerMasks
| В случае редактируемой
прозрачности этот бит определяет, будут ли фильтроваться маски слоев.
При установке бита в выходных данных будет присутствовать канал маски.
| 3 = PIFilterWritesOutsideSelectionBit
| 0 = doNotWriteOutsideSelection 1 = writeOutsideSelection
| Бит определяет, будет
ли фильтр обрабатывать область изображения или слоя с выделением вне
границ выделения. Обычно это очень плохо, но иногда нет более подходящих
вариантов. В этом случае плагин может использовать данные о прозрачности
слоя в качестве альтернативной маски.
|
flags2
Поле flags2 зарезервировано, и должно быть равно нулю.
Назад |
Содержание |
Вперед
© Ярослав Музыкантов muzykantov@mail.ru
При использовании материалов обязательна ссылка на сайт
students.pm.vogu35.ru/pages/pm03/mya
|