Главная страница
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.044 c
15-1175712277
Real
2007-04-04 22:44
2007.05.06
Bug TCP/IP


1-1173605167
PAN
2007-03-11 12:26
2007.05.06
ошибка с константами em_***


15-1176028307
Piroxyline
2007-04-08 14:31
2007.05.06
PHP и переменные


2-1176716731
vegarulez
2007-04-16 13:45
2007.05.06
Подскажите, почему UpperCase, не хотит рускиие буквы делать Up?


3-1171435004
DimonS
2007-02-14 09:36
2007.05.06
Обновление БД Access