|
@@ -1,9 +1,10 @@
|
|
|
|
+{*****************************************************************************}
|
|
{
|
|
{
|
|
$Id$
|
|
$Id$
|
|
- This file is part of the Free Pascal run time library.
|
|
|
|
- Copyright (c) 2003 by the Free Pascal development team
|
|
|
|
|
|
+ This file is part of the Free Pascal's "Free Components Library".
|
|
|
|
+ Copyright (c) 2003 by Mazen NEIFER of the Free Pascal development team
|
|
|
|
|
|
- PNG reader/writer common code.
|
|
|
|
|
|
+ BMP reader/writer common code.
|
|
|
|
|
|
See the file COPYING.FPC, included in this distribution,
|
|
See the file COPYING.FPC, included in this distribution,
|
|
for details about the copyright.
|
|
for details about the copyright.
|
|
@@ -11,8 +12,8 @@
|
|
This program is distributed in the hope that it will be useful,
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
-
|
|
|
|
- **********************************************************************}
|
|
|
|
|
|
+}
|
|
|
|
+{*****************************************************************************}
|
|
{$mode objfpc}{$h+}
|
|
{$mode objfpc}{$h+}
|
|
unit BMPcomn;
|
|
unit BMPcomn;
|
|
|
|
|
|
@@ -24,32 +25,60 @@ const
|
|
type
|
|
type
|
|
|
|
|
|
TBitMapFileHeader = record
|
|
TBitMapFileHeader = record
|
|
-{File type}
|
|
|
|
|
|
+{00+02 :File type}
|
|
bfType:word;
|
|
bfType:word;
|
|
-{File size in bytes}
|
|
|
|
|
|
+{02+04 :File size in bytes}
|
|
bfSize:longint;
|
|
bfSize:longint;
|
|
|
|
+{06+04 : Reserved}
|
|
bfReserved:longint;
|
|
bfReserved:longint;
|
|
-{Offset of image data}
|
|
|
|
|
|
+{10+04 : Offset of image data : size if the file hieder + the info header}
|
|
bfOffset:longint;
|
|
bfOffset:longint;
|
|
end;
|
|
end;
|
|
|
|
|
|
TBitMapInfoHeader = record
|
|
TBitMapInfoHeader = record
|
|
|
|
+{14+04 : Size of the bitmap info header : sould be 40=$28}
|
|
Size:longint;
|
|
Size:longint;
|
|
|
|
+{18+04 : Image width in pixels}
|
|
Width:longint;
|
|
Width:longint;
|
|
|
|
+{22+04 : Image height in pixels}
|
|
Height:longint;
|
|
Height:longint;
|
|
|
|
+{26+02 : Number of image planes : should be 1 always}
|
|
Planes:word;
|
|
Planes:word;
|
|
|
|
+{28+02 : Color resolution : Number of bits per pixel (1,4,8,24)}
|
|
BitCount:word;
|
|
BitCount:word;
|
|
|
|
+{30+04 : Compression Type}
|
|
Compression:longint;
|
|
Compression:longint;
|
|
|
|
+{34+04 : Size of compressed image : should be 0 if no compression}
|
|
SizeImage:longint;
|
|
SizeImage:longint;
|
|
|
|
+{38+04 : Horizontal resolution in pixel/meter}
|
|
XPelsPerMeter:Longint;
|
|
XPelsPerMeter:Longint;
|
|
|
|
+{42+04 : Vertical resolution in pixel/meter}
|
|
YPelsPerMeter:Longint;
|
|
YPelsPerMeter:Longint;
|
|
|
|
+{46+04 : Number of coros used}
|
|
ClrUsed:longint;
|
|
ClrUsed:longint;
|
|
|
|
+{50+04 : Number of imprtant colors used : usefull for displaying on VGA256}
|
|
ClrImportant:longint;
|
|
ClrImportant:longint;
|
|
end;
|
|
end;
|
|
|
|
|
|
TColorRGB=packed record
|
|
TColorRGB=packed record
|
|
B,G,R:Byte;
|
|
B,G,R:Byte;
|
|
end;
|
|
end;
|
|
|
|
+ TColorRGBA=packed record
|
|
|
|
+ A:Byte;
|
|
|
|
+ case Boolean of
|
|
|
|
+ False:(B,G,R:Byte);
|
|
|
|
+ True:(RGB:TColorRGB);
|
|
|
|
+ end;
|
|
|
|
+{54+?? : Color map : Lenght of color map is 4 bytes + the rest until the beginning of image data fixed in BFH.bfOffset}
|
|
|
|
+ TColorMap=TColorRGBA;
|
|
|
|
+
|
|
implementation
|
|
implementation
|
|
|
|
|
|
end.
|
|
end.
|
|
|
|
+{
|
|
|
|
+$Log$
|
|
|
|
+Revision 1.2 2003-09-09 11:22:30 mazen
|
|
|
|
++ adding comment for type defintion in the fpdoc style
|
|
|
|
+* fixing copyright section in the file header
|
|
|
|
+
|
|
|
|
+}
|