Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.05.06;
Скачать: CL | DM;

Вниз

Узнать высоту, ширину, цвет точки HBITMAP-а без модуля Graphics   Найти похожие ветки 

 
Dmitry_177   (2006-12-03 21:30) [0]

Если загрузить битмап из файла в переменную типа HBITMAP так:

var
hBmp: HBITMAP;
...
hBmp := LoadImage(0, "1.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);


Как можно узнать его высоту, ширину, и цвет в какой-то определенной точке не прибегая к модую Graphics?


 
MBo ©   (2006-12-04 07:00) [1]

GetObject
GetPixel


 
Dmitry_177   (2006-12-07 17:22) [2]

Я тут так подумал, может лучше так будет?

размер:

var
 size: tagSIZE;
...
GetBitmapDimensionEx(hBmp, size);


цвет:

color := GetPixel(hBmp, x, y);


 
Dmitry_177   (2006-12-10 19:05) [3]

Вот если делать через GetDIBits, у меня возникло несколько вопросов:

var
 memDC: HDC;
 hBkgnd: HBITMAP;
begin
 hBkgnd := LoadImage(0, "1.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);

 memDC := GetDC(0);
 GetDIBits(memDC, hBkgnd, 0, 0, nil, BMI, DIB_RGB_COLORS);
 ReleaseDC(0, memDC);

 if (BMI.bmiColors[0].rgbRed = 255) and (BMI.bmiColors[0].rgbGreen = 0) and (BMI.bmiColors[0].rgbBlue = 0) then
   MessageBox(0, "0 - Красный", "", 0);

end;


Правильно ли я создаю контекст устройства memDC := GetDC(0);?

Не понятно что это за массив bmiColors, как так идет счет точек что-то я не пойму, там же всего одно число а не два, например x и y... Объясните пожалуйста..



Страницы: 1 вся ветка

Текущий архив: 2007.05.06;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.014 c
2-1176716456
doob
2007-04-16 13:40
2007.05.06
ShowModal


2-1176400708
ВГГ
2007-04-12 21:58
2007.05.06
Завершить сервис


3-1171807050
иван8511
2007-02-18 16:57
2007.05.06
Добавление нового поля


1-1173699862
Empleado
2007-03-12 14:44
2007.05.06
Простенький вопрос по thread safe реализации


6-1162976599
olevacho_
2006-11-08 12:03
2007.05.06
зависание TIDHTTP