![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Получение параметров HBitmap [D5, D6, WinXP]
Th © (2002-09-25 18:02:00)Есть объект TBitmap, у него соотв. Handle - HBitmap. Объясните пожалуйста, как по этому хэндлу получить соответствующую структуру BITMAPINFOHEADER, и чем она отличается от BITMAPCOREHEADER.
MBo (2002-09-26 06:02:00) [1]procedure TForm1.Button1Click(Sender: TObject);
var b:tbitmap;
dibs:TDibSection;
begin
b:=tbitmap.create;
b.loadfromfile("e:\4.bmp");
GetObject(B.Handle, SizeOf(TDibSection), @dibs);
label1.caption:=inttostr(dibs.dsBmih.biHeight);
b.free;
end;
Evgeny (2002-09-26 05:16:00) [2]см. исходники graphics.pas
Th (2002-09-25 18:37:00) [3]Так как же все таки получить эту структуру (BITMAPINFOHEADER) объекта HBitmap? Дело в том, что мне надо установить знак высоты изображения, а если я просто сделаю SelectObject, то получу обычную структуру Bitmap, в которой высота всегда положительна, независимо от того, как изображение расположено в памяти - нижняя строка по младшим адресам или верхняя.
MBo (2002-09-25 18:23:00) [4]BITMAPCOREHEADER - заголовок старого формата bitmap OS/2, а нем всего 5 полей, а ао втором от 11 и выше (первые поля такие же)
см. исходники graphics.pas