Много статей не имеет срока устаревания. Есть смысл смотреть и 2011, и даже 2008 год. Политика сайта: написать статью, а потом обновлять ее много лет.
Открыта карта ВТБ для материальной поддержки сайта: 4893470220568296.

Рекламодателям! Перестаньте спамить мне на почту с предложениями о размещении рекламы на этом сайте. Я никогда спамером/рекламщиком не был и не буду!
" title="Написать письмо">Написать письмо

Статистика

Пользователи : 1
Статьи : 1238
Просмотры материалов : 4488432
 
Тернарные растровые операции в программировании (06.04.2013). Печать E-mail
2013 - Апрель
06.04.2013 10:55
Save & Share

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

Пример функции, которая копирует изображение из контейнера в контейнер:
Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long.

В конце применяется параметр, тернарная растровая операция. В итоге сама функция быстро скопирует изображение, а благодаря параметру - ещё и преобразует его (инвертирует цвета в моем случае).

Для VB6 пример выглядит следующим образом:
Call BitBlt(Picture_Print.hDC, Picture_Print.CurrentX, Picture_Print.CurrentY, Full_Form.Picture_2d_Full.Width, Full_Form.Picture_2d_Full.Height, Full_Form.Picture_2d_Full.hDC, 0, 0, vbSrcInvert)

Список тернарных операций (для VB подписывайте префикс "vb"):
Blackness - дает полностью черный вывод;
DSTInvert - дает инвертированную карту бит;
MergeCopy - комбинирует карты бит шаблона и источника с помощью логической операции AND;
MergePaint - комбинирует карту бит назначения с инвертированной картой бит источника с помощью логической операции OR;
NotSrcCopy - инвертирует карту бит источника и копирует ее в карту бит назначения;
NotSrcErase - инвертирует результат MergePaint;
PatInvert - комбинирует карту бит назначения и шаблона с помощью логической операции XOR;
PatPaint - комбинирует карту бит источника и шаблона, с помощью операции OR, а затем результат комбинируется с картой бит назначения с помощью операции OR;
SrcAnd - комбинирует карту бит источника и назначения с помощью операции AND;
SrcCopy - копирует карту бит источника в карту бит назначения;
SrcErase - комбинирует карту бит источника и инвертированного назначения с помощью операции AND;
SrcInvert - комбинирует карту бит источника и назначения с помощью XOR;
SrcPaint - комбинирует карту бит источника и назначения с помощью OR;
Whiteness - дает полностью белый вывод.

Обновлено ( 06.04.2013 11:11 )
 
 

Последние новости


©2008-2019. All Rights Reserved. Разработчик - " title="Сергей Белов">Сергей Белов. Материалы сайта предоставляются по принципу "как есть". Автор не несет никакой ответственности и не гарантирует отсутствие неправильных сведений и ошибок. Вся ответственность за использование материалов лежит полностью на читателях. Размещение материалов данного сайта на иных сайтах запрещено без указания активной ссылки на данный сайт-первоисточник (ГК РФ: ст.1259 п.1 + ст.1274 п.1-3).