(, LSB Least Significant Bit) [3, 5, 9, 14,19,20].
. , . , , . , ( ) 1/8 . , 512x512 ~32 . ( ), .
, ( 12,5 30%). , (, GIF BMP) [3][2].
. .
- MathCAD ( MathCAD) ( , , , , , , ). MathCAD BMP, JPEG, GIF, PCX TGA. , BMP GIF, .
BMP-; () : , .
( , ..) , , , , ..
. , (, RGB). , 0 255. , 8 (1 ), 24 (3 ).
1
Picture Insert . , , , ( , , ) <Enter>.
|
|
. 5.2. -
, Picture . 5.3. 128x128 , 24 . . READRGB (" "), , , , R, G :
:= READRGB(C bmp").
(. 5.4, ) 5.4, . bmp, , , , .
, , :
(. 5.4, ) 5.4, 6
. 6.4. -
. .bmp, , , , .
, , :
R:= READ_RED ("C bmp"); G:= READ_GREEN ("C bmp"), := READ_BLUE ("C bmp")
2
, , , , . txt , MathCAD, :
(*.txt);
(Windows)
1114("_", '__"). 8- ():
:= READBIN ("M.txt, "byte").
- (), ASCII- () . 0 255; 8 , byte READBIN (. ).
|
|
, 16 ( ) , . 5.5[3]
, 0. 1 ( ), , , ORIGIN:= 1 1 Array Origin Built-in Variables Worksheet Options, Tools MathCAD.
( ) vec2str(M). , ASCII-.[4]
3
M.txt C.bmp . . , .
ASCII-: i: =1..256; Ai =i-1 ( , , ).
11001000b | ||||||
11101101b | ||||||
11110100b | ||||||
11101110b | ||||||
11110000b | ||||||
11101100b | ||||||
11100000b | ||||||
- | = | 11110110b | ||||
11101000b | ||||||
11111111b | ||||||
100000b | ||||||
11111111b | ||||||
11100010b | ||||||
11101011b | ||||||
11111111b | ||||||
11100101b |
. 6.5. ,
: Na:=rows(A), rows(A) , . : Na - 256 .
, : : ="@J|eKc-1980". ( ): Nk:= strlen(K), Nk = 11 .
, : Nm:=rows(M), Nm = 5390 ( ASCII- . ).
(Nm), (M.1).
str2vec(K) ASCII-. for i ( ) ( 1 Nm). mod(i,Nk) i Nk.
, (.2)
4
, , .
, . , , ASCII- (, ; ..). :
|
|
=n0@m0k =KIHeu,6
, stack(A,B,...), . "" ; ( ) ..
, , ASCII-. , sMe:stack {str2vec(), M_cod, str2vec()).
: rows(sMe)=5404. ,- (8 /): 8rows(sMe) = 43232 . : rows(C)cols(C) = 3 128 128 = 49152 > 43232 . , , .
5
( ) . . MathCAD (; , , ), , .
, - ( ), (.).
(.4)
mod(x,2) 2 (0, , 1, ). floor() , .
6
, , R-G-B B-G-R, ( , , ). (.5), , augtment(A,B,...) , ,..., ( , ).
i- ', Cv. cols(C') .
7
Cv , ( (.6)).
( for 1..rows(sMe)) ( b), , ( ( )).
Sv.
sMe Cv, . 0 1 ( ; round() ), , ( ). .
|
|
, , , ( " " ) . , , .
. 5.6 , (0/1) - (), - () () . , "" (. 5.6, ) , . R , R, , , . "" 0 1 , , . .
, , , , . , "" "" [95].
, .
. 5.6. ,
"" , , , . ( , ..), , .
, , , , , . (.6).
8
(.6) Sv S, ( (.7) (.8)).
(M.7)
submatrix(A,x,X,,Y) , , X Y .
9
, S' , - S (.8).
. 5.7 S - .
. 5.7 . 5.4, .
. 6.7. -
3 : WRITERGB ("S_LSB.bmp"):= S. , -.
10
, , ( ), , (.6) "1" , . . 5.8 , 8- ( ) , .
|
|
, , "" , ( ). , . , , .
. 5.8. 8-
11
. , , , , , :[5]
R*:= READ_RED ("S_LSB.bmp"); G*:= READ_GREEN (); *:= READ_BLUE ().
, , (.5), Sv* ( (.9)).
-, , (. 10).
, , , Sv* , . f* "", (.6) : Sv* , . - f*.
12
12- MathCAD , ASCII- 0 31 ( LF ( 10) CR ( 13)), 0, 1,2,..., 31 f* 32,5 ( , "" , ). , , f*, ( ( 1)).
, N , 32,5 ( ), 33,5 ( ) ..
13
, :="n0@m0"; := "KiHeu,6", , (.12).
ASCII- f*, vec2str() , . , .
substr(f*, , ), f*, ( , , ORIGIN) [6]. , 7 , .
, f*. ( if), f*. , s=0; =0; s 0; 0 .
f* ASCII- , .
14
. , :
(i:=1..256; A* i:= i 1) Na*:=row{A*), Na* =256 ;
*:= "@J|eKc-I980" Nk*:= strlen(K*), Nk* = 11 ;
, : Nm*:=rows(M_cod*), Nm* = 5390 .
(.13) * Nm* M_cod* ( , (. 1)).
(.14).
:
WRITEBIN ("M_dec.txt","byte",0):= *.
15
, 3 ( (3.1)(3.17)). . 5.1 (. 125).