3.0 WINDOWS .bmp, (RLE - run-length encoded). , : (n) . n .
', . , , . 256- 16- . (true color) .
bicompression . ³ :
Bi_rgb (=0) - ;
Bi_rle8 (=1) - 8- ;
Bi_rle4 (=2) - 4- .
256- bicompression Bi_rle8 (=1). .
, . 1 255. ( ) , .
, "0a 14" , 10 ( 0a) , ( 14) .
, , . . :
0 ʳ ;
1 ʳ ;
2 ( Delta-);
n>=3 .
. ,
. , , , . , , . , "00 02 05 01" , 5 1 . , . , .
, , . , , . . , . 6 258 n.
|
|
³, 3 . 1 2, .
11 11 11 22 33 44 44
:
03 11 01 22 01 33 02 44.
, , . 8- (
):
10 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c
03 04 04 04 04
00 03 45 56 67 00 45 56 67 ( 00 - )
02 78 78 78
00 02 05 01 5 1
02 78 78 78
00 00 ʳ
09 1e 1e 1e 1e 1e 1e 1e 1e 1e 1e
00 01 ʳ RLE
³, . . , , "00" "10". "00 0c" , 12 ( 0c) . :
03 04 00 03 45 56 67 00 02 78 00 02 01 01 01 01 01 78 78
0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 04 04 04 45 56 67 78 78
, Delta-, . , Ҳ. , .
. 16- ( bicompression Bi_rle4 =2) . ³ , , 4 . ( ):
10 0c 0 C 0 C 0 C 0 C 0 C 0 C 0 C 0 C
03 04 0 4 0
00 06 45 56 67 00 4 5 5 6 6 7
04 78 7 8 7 8
00 02 05 01 5 1
04 78 7 8 7 8
00 00 ʳ
09 1e 1 E 1 E 1 E 1 E 1
00 01 ʳ RLE
. , , , (- 4 ) . , "05 06" 5 , " 0 6 0 6 0". , .
WINDOWS: ( ) *.ico *.cur.
*.pcxpar
1982 Zsoft Paintbrush, MS-DOS. - , - , . , MS-DOS Os/2; PCX - . , PCX.
|
|
PCX (RLE - run-length encoded). , PCX BMP, : .
PCX : 128- ( ) ' . , 256 . 769 (256*3+1).
PCX
, . , , . , , , . PCX .
:
typedef struct tagpcxheader
{
BYTE Pcxflag; // (0x0a - PCX)
BYTE version; // PCX
BYTE encod; // (=1)
BYTE bitpx; //
WORD x1; //
WORD y1;
WORD x2;
WORD y2;
WORD hres; //
WORD vres; //
BYTE clrma[48]; //
BYTE vmode; //
BYTE nplanes; //
WORD bplin; //
WORD palinfo; //
WORD hsize; // .
WORD vsize; // .
char xtra[54]; //
} PCXHEADER;
PCXHEADER . :
(clrma) 48 . 16 . PCX. , 256- , . 3- RGB, , . : R-G-B.
vmode MS-DOS. ,
.
(bplin) ( ).
, (palinfo), , . , :
0x01 - - 0x02 - () .
palinfo 0x02 ( ), , . , , . , , , , . , . , , . ? , , PCX .
|
|
, PCX, 3- . , , .
PCX , 16 . ( 256- ) . 24- , , , . . ͳ , , , , .
, ? BMP , PCX . , " " " " (. ):
| - | - | |
. | . | | |
--------+--------+--------+----------+------------
1 | 4 | 16 | 48 |
8 | 1 | 256 | 769 |
8 | 3 | 16m | - | ³
', 6- ', 6 8, . 16- , , . 4. , "AA 55 FF", : "2a 15 3f".
256- , 0x0c ( 12) 0x0a ( 10). ³ , . 6 , 0x0a; 0x0c , 6 , 4.
. ', , , . , ?
16- , , .
256- : , . : 769- . 0a 0c, , .
0a 0c, , . , 769- . 768 . , (0,0,0) (1,1,1)..., (255,255,255).
|
|
769- 0a 0c, __ 768 , - . , , , . 769 , , , , .
: "" "" . ? ³ . .
, , .
, . , , . . . , , - .
, :
1) R, G, B ,
2) .
" PCX" . 5, 3 , . . - .