Страница 1 из 1

Работа с растрами через GDI API

Добавлено: 16 июл 2007, 00:41
TCoder
Драсте, возникла проблема. Задача - попиксельная обработка нескольких контекстов экрана. Функции SetPixel и GetPixel слишком медленно работают. Вопрос - есть ли возможность обратится к растру, как к памяти, чтоб повысить эффективность обработки.

HDC hMemDc;
HDC hdc;
HBITMAP hBit;

hdc=GetDC(hWnd); // Получаю DC
hMemDc=CreateCompatibleDC(hdc); // Cоздаю совместимый контекст
hbit=CreateCompatibleBitmap(hdc,100,100); // Получаю совместимый растр
SelectObject(hMemDc, hBit); // Цепляю растр к совместимому конт.

....

Вообщем, есть ли способы обратиться к растру, как к памяти.
Заранее благодарен. Новичок TCoder

Re: Работа с растрами через GDI API

Добавлено: 16 июл 2007, 09:52
Absurd

Re: Работа с растрами через GDI API

Добавлено: 16 июл 2007, 16:14
TCoder
Спасибо за помощь. Я нашел функцию попроще - GetBItmapBits и SetBitmapBits. Единственный недостаток - нужно много глобальной памяти.

Re: Работа с растрами через GDI API

Добавлено: 16 июл 2007, 16:42
WinMain
GetBItmapBits и SetBitmapBits зависят от настроек графической системы Windows, особенно в части использования количества цветов (TrueColor, HighColor). Соответственно, на твоём компьютере может всё нормально работать, а на другом нет. Либо нужно писать универсальный алгоритм для работы с этими функциями.

Re: Работа с растрами через GDI API

Добавлено: 17 июл 2007, 00:40
TCoder
Универсальность я учел, спасибо. Очередной вопрос по этой теме: Можно ди удалять растр, после того, как я его прицепил к контексту (SelectObject)