Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.043 c
1-1089656208
Satan
2004-07-12 22:16
2004.07.25
Алгоритм поиска простых чисел порядка 2**128 и выше


3-1088508416
DSKalugin
2004-06-29 15:26
2004.07.25
Программная Индексация DBase III


8-1084014356
Sonic_gd
2004-05-08 15:05
2004.07.25
Контекстное меню


1-1089435194
Ivolg
2004-07-10 08:53
2004.07.25
Процедуры и функциии


14-1088707894
mvgfirst
2004-07-01 22:51
2004.07.25
У кого какой КПК и кто как применяет (по работе)




   Наверх