Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Литература / photon_old.doc
Скачиваний:
40
Добавлен:
02.04.2015
Размер:
7.88 Mб
Скачать
      1. Образы в непосредственных цветах

В образах в непосредственных цветах каждый пиксель может быть любого цвета. Но в сравнении с образами на основе палитры, данные образа имеют больший объём и образ, возможно, будет дольше прорисовываться. Вы можете выбирать между несколькими типами образов в непосредственных цветах, перечисленных в описании к PhImage_t в "Справочнике библиотечных функций Photon'а"; они отличаются размером пикселя образа и точностью цвета.

      1. Образы в градиентных цветах

В образах в градиентных цветах цвета алгоритмически сгенерированы как градиент между двумя заданными цветами.

      1. Создание образов

Чтобы создать структуру PhImage_t:

  • Вызовите функцию PhCreateImage()

или

  • Вызовите функцию PxLoadImage(), чтобы загрузить образ с диска

или

  • Вызовите функцию ApGetImageRes(), чтобы загрузить образ из базы данных виджетов PhAB'а

или

  • Получите значение ресурса Pt_ARG_LABEL_IMAGE виджета типа PtLabel или PtButton (поддерживаемые виджетовским Pt_ARG_LABEL_TYPE являются Pt_IMAGE или Pt_TEXT_IMAGE)

или

  • Выделите для него место в памяти и заполните члены образа вручную.

 Лучше вызвать функцию PhCreateImage(), чем выделять память под структуру и заполнять её вручную. Функция PhCreateImage() не только предоставляет удобный способ настройки пустого образа, но также соблюдает ограничения, накладываемые графическими драйверами на выравнивание образа, и прочие вещи.

      1. Кэширование образов

Члены image_tag и palette_tag структуры PhImage_t используются для кэширования образов при работе с удалёнными процессами через phrelay (см. "Справочник утилит QNX 6"), например, при использовании phindows.

Эти тэги являются контрольной суммой (CRS – т.е. полученной циклическим избыточным кодом) данных образа и палитры, и могут быть вычислены с помощью функций PtCRC() или PtCRCValue(). Если эти тэги являются ненулевыми, phindows и phditto кэшируют образы. Перед отсылкой образа phrelay отсылает его тэг. Если phindows обнаруживает тот же тэг в своём кэше, то использует образ из кэша. Эта схема уменьшает объём передаваемых данных.

  • Вам нет нужды заполнять тэги, если не надо сохранять образы в кэше. Например, установите тэги в 0, если Вы отображаете мультипликацию, отображая образы, и образы никогда не повторятся.

Функции PxLoadImage и ApGetImageRes() устанавливают тэги автоматически. PhAB генерирует тэги для всех образов, сгенерированных через него (например, в побитовом редакторе).

      1. Прозрачность в образах

Если Вы хотите, чтобы часть какого-то обрааз была прозрачной, Вы можете:

  • использовать хроматический ключ

или

  • создать маску прозрачности для образа.

Хромоключ поддерживается в большей части аппаратного обеспечения, тогда как маски прозрачности всегда обеспечиваются в программном обеспечении.

          1. Использование хромоключа

Чтобы сделать заданный цвет прозрачным в образе, используя, если это возможно, хромоключ, вызовите функцию PhMakeTransparent(), передав ей образ и RGB-цвет, который Вы хотите сделать прозрачным.

Соседние файлы в папке Литература