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

Вниз

Размер рисунка   Найти похожие ветки 

 
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 вся ветка

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

Наверх




Память: 0.47 MB
Время: 0.025 c
14-1089300094
СатирЪ
2004-07-08 19:21
2004.07.25
Proxies.dcu


3-1088577412
zorik
2004-06-30 10:36
2004.07.25
Нужно написать запрос


9-1080911413
Cash
2004-04-02 17:10
2004.07.25
Collision на каждом кадре анимации


14-1089290277
Tot
2004-07-08 16:37
2004.07.25
Чтение нестандартных дискет


1-1089358029
Sur
2004-07-09 11:27
2004.07.25
JPG+EOF+SomeText