Главная страница
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
1-1089720193
mOOx_
2004-07-13 16:03
2004.07.25
Сравнение строк для сортировки (Алгоритм)


1-1089565332
Фёдор Мегатронов
2004-07-11 21:02
2004.07.25
Как узнать размер фаила в инете ?


6-1085635353
ORMADA
2004-05-27 09:22
2004.07.25
Indy


1-1089304409
Ivolg
2004-07-08 20:33
2004.07.25
Размер


1-1089704487
Lamerr
2004-07-13 11:41
2004.07.25
TChart.SaveChartToFile...