Использование BitBlt и StretchBlt |
![]() |
![]() |
Статьи |
Две функции, которые очень важны для работы с изображениями – это BitBlt и StretchBlt. Обе они служат для копирования растровых изображений, а при помощи функции StretchBlt можно также изменять размер изображения. Это две Windows API функции, а это значит, что в качестве параметра нужно передавать дескриптор холста. В Delphi, однако, есть аналогичные функции - TCanvas.CopyRect и TCanvas.StretchDraw. Однако, они работают намного медленнее, чем аналогичные API функции. В конце списка передаваемых параметров передается так называемый код операции. Он определяет, как передаваемые пиксели, а также пиксели, которые находятся на холсте, будут связаны между собой. Например, SRCCOPY обеспечивает нормальное копирование, SRCINVERT конвертирует пиксели источника и приемника при помощи операнда ИЛИ, SRCAND связывает пиксели при помощи операнда И. Пример использованияСледующий пример выводит на холст формы изображение, которое загружено в TImage Image1.Изображение будет негативным по отношению к начальному изображению, а также изменено по размеру.
Результат работы приложения![]() Для начала загрузите растровое изображение в Image1. |