Форум: "WinAPI";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];
ВнизРазмер рисунка Найти похожие ветки
← →
FlyDragon (2004-06-15 17:50) [0]Как с помощью WINAPI узнать высоту и ширину рисунка не открывая его самого, т.е. не создавая TBitmap и не загружая его в него растр из того рисунка.
← →
SPV (2004-06-15 18:52) [1]var
hfbm, dwRead : Cardinal;
bmfh : BITMAPFILEHEADER;
bmih : BITMAPINFOHEADER;
begin
hfbm := CreateFile(PChar("c:\temp\dnarrow.bmp"), GENERIC_READ,
FILE_SHARE_READ, NiL, OPEN_EXISTING, FILE_ATTRIBUTE_READONLY,
0);
ReadFile(hfbm, bmfh, sizeof(BITMAPFILEHEADER),
dwRead, NiL);
ReadFile(hfbm, bmih, sizeof(BITMAPINFOHEADER),
dwRead, Nil);
Структура BITMAPINFOHEADER
typedef struct tagBITMAPINFOHEADER{ // bmih
DWORD biSize;
LONG biWidth;
LONG biHeight;
WORD biPlanes;
WORD biBitCount
DWORD biCompression;
DWORD biSizeImage;
LONG biXPelsPerMeter;
LONG biYPelsPerMeter;
DWORD biClrUsed;
DWORD biClrImportant;
} BITMAPINFOHEADER;
← →
Rouse_ © (2004-06-15 20:35) [2]
function PictureSize: TSize;
var
ResHandle: HWND;
ResData: HWND;
BMI: PBitmapInfo;
begin
Result.cx := 0;
Result.cy := 0;
ResHandle := FindResource(HInstance,
MAKEINTRESOURCE(200), RT_BITMAP);
if ResHandle <> 0 then
begin
ResData := LoadResource(HInstance, ResHandle);
if ResData <> 0 then
try
BMI := LockResource(ResData);
if Assigned(BMI) then
try
Result.cx := BMI.bmiHeader.biWidth;
Result.cy := BMI.bmiHeader.biHeight;
finally
UnlockResource(ResData);
end;
finally
FreeResource(ResData);
end;
end;
end;
---
Желаю успехов
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.043 c