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

Маска прозрачности хранится в члене mask_bm структуры PhImage_t. Она представляет из себя побитовый образ, соответствующий данным образа; каждый бит этого побитового образа представляет пиксель рисуемого образа:

Если бит равен:

Сответствующий пиксель является:

0

Прозрачным

1

Каким-то цветом, заданным в данных образа

Член mask_bpl структуры PhImage_t задаёт число байтов на линию для маски прозрачности. Вы можете создать маску прозрачности, вызвав функцию PhMakeTransBitmap().

 Если Вы используете функцию PxLoadImage() для загрузки прозрачного образа, установите флаг Px_TRANSPARENT в члене flags структуры PxMethods_t. Если Вы делаете это, функция автоматически делает образ прозрачным; Вам нет необходимости создавать маску прозрачности.

      1. Отображение образов

Существуют различные пути отображения образов:

  • Если образ хранится в структуре PhImage_t, вызовите функцию PgDrawPhImage() или PgDrawPhImagemx(). Эти функции автоматически обрабатывают хромоключ, альфа-операции, появление ореола на изображении, прозрачность и всё такое прочее.

Чтобы прорисовывать образ периодически, вызовите функцию PgDrawRepPhImage() или PgDrawRepPhImagemx().

Чтобы прорисовать прямоугольный фрагмент образа, вызовите функцию PgDrawPhImageRectmx().

  • Если образ не хранится в структуре данных PhImage_t, вызовите функцию PgDrawImage() или PgDrawImagemx().

Чтобы прорисовать образ периодически, вызовите функцию PgDrawRepImage() или PgDrawRepImagemx().

  • Если образ не хранится в структуре PhImage_t и имеет маску прозрачности, вызовите функцию PgDrawTImage() или PgDrawTImagemx().

  • Установите ресурс Pt_ARG_LABEL_IMAGE для виджета PtLabel или PtButton (которые используют функцию PgDrawPhImagemx() внутренне). Ресурс Pt_ARG_LABEL_TYPE виджета должен быть установлен в Pt_IMAGE или в Pt_TEXT_IMAGE.

Версии mx этих функций размещают адрес образа в буфере рисования пространства данных Вашего приложения. Когда буфер рисования сбрасывается, весь образ копируется в графический драйвер. Не-mx'овские версии копируют сам образ в буфер рисования:

my_image–> image = PgShmenCreate (size, NULL);

Если Вы это делаете, данные образа не копируются в графический драйвер.

 Образы, созданные и возвращённые функциями ApGetImageRes() и PxLoadImage(), не размещаются в памяти совместного доступа.

      1. Управление образами

Следующие функции позволяют Вам управлять образами:

PiCropImage()

Обрезает образ по заданной границе

PiDuppplicateImage()

Дублирует образ

PiFlipImage()

Зеркально отображает весь образ или его часть

PiGetPixel()

Получает значение пикселя внутри образа

PiGetPixelFromData()

Получает значение из диапазона пикселей

PiGetPixelRGB()

Получает RGB-значение пикселя внутри образа

PiSetPixel()

Изменяет значение пикселя внутри образа

PiSetPixelInData()

Устанавливает значение пикселя в диапазоне пикселей

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