Последние записи
- Как получить доступ к массиву пикселов DIB
- Модуль числа |a| без условных операций на CMD
- Как копировать текст из блока в буфер обмена?
- Получение ProductKey установленной Windows
- Как парсить https сайт ?
- Смена регистра строки текста на BAT (CMD)
- Вывод разноцветного текста на BAT (CMD)
- Узнать дату окончания сертификата
- Как создать полноценный сайт на Open Server
- Получить температуру процессора на bat-файлах
Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке - https://slurm.club/3MeqNEk
Online-курс Java с оплатой после трудоустройства. Каждый выпускник получает предложение о работе
И зарплату на 30% выше ожидаемой, подробнее на сайте академии, ссылка - ttps://clck.ru/fCrQw
11th
Фев
Как получить доступ к массиву пикселов DIB
Posted by obzor under Delphi
Создаю HBITMAP
var
bi: BITMAPINFO;
hB: HBITMAP;
DC: HDC;
Scr: Pointer;
begin
DC := CreateCompatibleDC(0);
FillChar(bi, SizeOf(bi), 0);
bi.bmiHeader.biSize := SizeOf(BITMAPINFOHEADER);
bi.bmiHeader.biWidth := asize.cx;
bi.bmiHeader.biHeight := asize.cy;
bi.bmiHeader.biPlanes := 1;
bi.bmiHeader.biBitCount := 32;
bi.bmiHeader.biCompression := BI_RGB;
bi.bmiHeader.biSizeImage := asize.cx * asize.cy * 4;
Scr := nil;
hB := CreateDIBSection(DC, bi, DIB_RGB_COLORS, Scr, 0, 0);
Как получить доступ к R,G,B,A значениям каждого пиксела через указатель Scr?
В модуле Windows описан стандартный тип TRGBQuad, но он только для одного цвета, а не для массива. Я бы описал свои типы, ибо TRGBQuad кажется дурацким:
type
TAlphaRGB = packed record
Blue, Green, Red, Alpha: Byte;
end;
PAlphaDIB = ^TAlphaDIB;
TAlphaDIB = array[0..MaxInt div SizeOf(TAlphaRGB) - 1] of TAlphaRGB;
var
Scr: PAlphaDIB;
begin
...
Scr := AllocMem(asize.cx * asize.cy * SizeOf(TAlphaRGB)); // заполняет нулями = черным
Scr[0].Red := $FF; // ставим красную точку
end;
Случайные статьи
Купить рекламу на сайте за 1000 руб
пишите сюда - alarforum@yandex.ru
Да и по любым другим вопросам пишите на почту

пеллетные котлы

Пеллетный котел Emtas
Наши форумы по программированию:
- Форум Web программирование (веб)
- Delphi форумы
- Форумы C (Си)
- Форум .NET Frameworks (точка нет фреймворки)
- Форум Java (джава)
- Форум низкоуровневое программирование
- Форум VBA (вба)
- Форум OpenGL
- Форум DirectX
- Форум CAD проектирование
- Форум по операционным системам
- Форум Software (Софт)
- Форум Hardware (Компьютерное железо)

