Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы_ОСиСП.docx
Скачиваний:
55
Добавлен:
20.04.2019
Размер:
623.57 Кб
Скачать

11. Растровые изображения. Вывод растровых изображений. Значки и курсоры. Вывод растровых изображений с эффектом прозрачного фона.

Растровое изображение — представляет собой сетку пикселей или точек цветов (обычно прямоугольную) на компьютерном мониторе, бумаге и других отображающих устройствах и материалах. Важными характеристиками изображения являются:

  • разрешение. Может указываться отдельно количество пикселов по ширине и высоте (1024*768, 640*480,...) или же, редко, общее количество пикселов (часто измеряется в мегапикселах);

  • количество используемых цветов или глубина цвета

  • цветовое пространство (цветовая модель) RGB, CMYK, XYZ, YCbCr и др.

Отрисовка изображения может быть выполнена с использованием функции StretchDIBits() (функция StretchDIBits копирует данные для прямоугольной области пикселов формата DIB в область адресата отображения формата DDB, полученное таким образом изображение DDB может быть выбрано в контекст памяти и нарисовано обычным способом при помощи функции BitBlt() или StretchBlt()) или с использованием функции StretchDIBits() (эта функция сама выполняет необходимые преобразования).

Вывод растровых изображений с эффектом прозрачного фона

Теперь растр с прозрачностью можно вывести за один прием с помощью функции TransparentBlt, указав прозрачный цвет в последнем параметре функции:

CDC memDC;

memDC.CreateCompatibleDC(pDC);

CBitmap *temp = memDC.SelectObject(m_Bmp);

TransparentBlt(pDC->m_hDC, x, y, dstX, dstY, memDC.m_hDC,

x1, y1, srcX, srcY, RGB(255,255,255));

memDC.SelectObject(temp);

В данном примере x, y, x1, y1 - координаты начальной точки растра в приемнике и источнике соответственно. Параметры dstX и dstY - размеры области вывода, а srcX и srcY - ширина и высота прямоугольника, отображаемого из растра.

Эта функция содержит возможности по сжатию/растяжению растровых изображений. Добавим, что функция TransparentBlt() при выводе опирается на возможности DirectX данного устройства, что может дать прирост производительности по сравнению с традиционными методами.

Значки (Пикторграммы) — это небольшие растровые изображения, применяемые Windows для визуального представления приложений, файлов и каталогов. Пиктограмма, включенная в состав приложения, выводится на экран в левом верхнем углу строки заголовка окна приложения. Кроме того, Windows выводит на экран значок пиктограммы в списке программ меню Start (Пуск), на панели задач, когда окно приложения свернуто, и в списке файлов, отображаемых программой Windows Explorer в открытой папке. Также пиктограммы отображаются на рабочем столе, предоставляя доступ к системным папкам и к ярлыкам исполняемых файлов. Обычно малые и стандартные пиктограммы являются 16-цветными, а большие пиктограммы могут использовать 256 цветов.

Курсоры — это изображения размером 32 х 32 пиксела, которые отмечают положение курсора (указателя) мыши. Курсоры во многом похожи на пиктограммы. Их главное отличие заключается в наличии активной точки (hotspot). Активной точкой называется пиксел, который принадлежит изображению курсора и отмечает его точное положение на экране в любой момент времени. В стандартном курсоре, имеющем вид стрелки, активная точка расположена в левом верхнем углу курсора.