Главная страница
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.015 c
11-1158821369
avs
2006-09-21 10:49
2007.05.06
KolListView


15-1176242262
SerJaNT
2007-04-11 01:57
2007.05.06
Палитра компонентов Delphi


2-1176755058
tigraman
2007-04-17 00:24
2007.05.06
Работа с мемо


4-1165562881
Peter Kapustin
2006-12-08 10:28
2007.05.06
Сканер для считвания чипов.


15-1176093581
vajo
2007-04-09 08:39
2007.05.06
Подскажите с апгрейдом компа.