เชเช เชธเชฎเชฏเซ เชฎเซเช เชฎเชพเชฐเซเช เชฒเชเซเชฏเซเช เชนเชคเซเช
เชเชเซ เชเชชเชฃเซ เชฅเซเชกเซเช เชเชเชกเซเช เชเซเชฆเชตเชพเชจเซ เชชเซเชฐเชฏเชคเซเชจ เชเชฐเซเชถเซเช เช
เชจเซ LSB เชเชฒเซเชเซเชฐเชฟเชงเชฎเชจเซ เชเซเชเชถเซเช. เชเซ เชคเชฎเชจเซ เชฐเชธ เชนเซเชฏ, เชคเซ เชฌเชฟเชฒเชพเชกเซ เชนเซเช เชณ เชคเชฎเชพเชฐเซเช เชธเซเชตเชพเชเชค เชเซ. (เชเช เชนเซเช เชณ เชเซเชฐเชพเชซเชฟเช เชเซ: เชฒเชเชญเช เชเช เชฎเซเชเชพเชฌเชพเชเช.)
เชธเซ เชชเซเชฐเชฅเชฎ, เชเซเชเชเซ เชชเชฐเชฟเชเชฏ เชเชฐเชตเซ เชเชฐเซเชฐเซ เชเซ. เชฆเชฐเซเช เชตเซเชฏเชเซเชคเชฟ เชเชพเชฃเซ เชเซ เชเซ เชเซเชฐเชฟเชชเซเชเซเชเซเชฐเชพเชซเซเชจเซ เชนเซเชคเซ เชเซเชชเซเชค เชฎเชพเชนเชฟเชคเซ เชตเชพเชเชเชตเชพเชจเซเช เช
เชถเชเซเชฏ เชฌเชจเชพเชตเชตเชพเชจเซ เชเซ. เช
เชฒเชฌเชคเซเชค, เชเซเชฐเชฟเชชเซเชเซเชเซเชฐเชพเชซเซเชฎเชพเช เชคเซเชจเซ เชเชชเซเชฒเชฟเชเซเชถเชจเซ เชเซ, เชชเชฐเชเชคเซ เชกเซเชเชพ เชธเซเชฐเชเซเชทเชพ เชฎเชพเชเซ เช
เชจเซเชฏ เช
เชญเชฟเชเชฎ เชเซ. เช
เชฎเชพเชฐเซ เชฎเชพเชนเชฟเชคเซเชจเซ เชเชจเซเชเซเชฐเชฟเชชเซเช เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชจเชฅเซ, เชชเชฐเชเชคเซ เชกเซเชณ เชเชฐเซเช เชเซเช เชเซ เช
เชฎเชพเชฐเซ เชชเชพเชธเซ เชคเซ เชจเชฅเซ. เช เชเชพเชฐเชฃเซ เช เชธเซเชเซเชเชจเซเชเซเชฐเชพเชซเซเชจเซ เชถเซเชง เชฅเช เชนเชคเซ. เชตเชฟเชเชฟเชชเซเชกเชฟเชฏเชพ เช
เชฎเชจเซ เชเชพเชคเชฐเซ เชเชชเซ เชเซ เชเซ โเชธเซเชเซเชเชจเซเชเซเชฐเชพเชซเซ (เชเซเชฐเซเชเชฎเชพเชเชฅเซ ฯฯฮตฮณฮฑฮฝฮฟฯ - เชนเชฟเชกเชจ เช
เชจเซ เชเซเชฐเซเช ฮณฯฮฑฯฯ - เชนเซเช เชฒเชเซเช เชเซเช, เชถเชพเชฌเซเชฆเชฟเช เชฐเซเชคเซ "เชเซเชชเซเชค เชฒเซเชเชจ") เช เชเซเชฐเชพเชจเซเชธเชฎเชฟเชถเชจเชจเซ เชนเชเซเชเชคเชจเซ เชเซเชชเซเชค เชฐเชพเชเซเชจเซ เชฎเชพเชนเชฟเชคเซเชจเชพ เชเซเชชเชพเชฏเซเชฒเชพ เชเซเชฐเชพเชจเซเชธเชฎเชฟเชถเชจเชจเซเช เชตเชฟเชเซเชเชพเชจ เชเซ.
เช เชฒเชฌเชคเซเชค, เชเซเช เชชเชฃ เชเซเชฐเชฟเชชเซเชเซเชเซเชฐเชพเชซเชฟเช เช เชจเซ เชธเซเชเซเชเชจเซเชเซเชฐเชพเชซเชฟเช เชชเชฆเซเชงเชคเชฟเชเชจเชพ เชธเชเชฏเซเชเชจเชจเซ เชชเซเชฐเชคเชฟเชฌเชเชงเชฟเชค เชเชฐเชคเซเช เชจเชฅเซ. เชคเชฆเซเชชเชฐเชพเชเชค, เชตเซเชฏเชตเชนเชพเชฐเชฎเชพเช เชคเซเช เช เชเชฐเซ เชเซ, เชชเชฐเชเชคเซ เช เชฎเชพเชฐเซเช เชเชพเชฐเซเชฏ เชฎเซเชณเชญเซเชค เชฌเชพเชฌเชคเซเชจเซ เชธเชฎเชเชตเชพเชจเซเช เชเซ. เชเซ เชคเชฎเซ เชตเชฟเชเชฟเชชเซเชกเชฟเชฏเชพ เชฒเซเชเชจเซ เชเชพเชณเชเซเชชเซเชฐเซเชตเช เช เชญเซเชฏเชพเชธ เชเชฐเซ เชเซ, เชคเซ เชคเชฎเชจเซ เชเชพเชฃเชตเชพ เชฎเชณเชถเซ เชเซ เชธเซเชเซเชเชจเซเชเซเชฐเชพเชซเซ เช เชฒเซเชเซเชฐเชฟเชงเชฎเซเชธเชฎเชพเช เชเชนเซเชตเชพเชคเชพ เชถเชพเชฎเซเชฒ เชเซ. เชเชจเซเชเซเชจเชฐ เช เชจเซ เชธเชเชฆเซเชถ. เชเชจเซเชเซเชจเชฐ เช เชเซเชเชชเชฃ เชฎเชพเชนเชฟเชคเซ เชเซ เชเซ เช เชฎเชพเชฐเชพ เชเซเชชเซเชค เชธเชเชฆเซเชถเชจเซ เชเซเชชเชพเชตเชตเชพเชฎเชพเช เชฎเชฆเชฆ เชเชฐเซ เชเซ.
เช เชฎเชพเชฐเชพ เชเชฟเชธเซเชธเชพเชฎเชพเช, เชเชจเซเชเซเชจเชฐ BMP เชซเซเชฐเซเชฎเซเชเชฎเชพเช เชเช เชเชฌเซ เชนเชถเซ. เชชเซเชฐเชฅเชฎ, เชเชพเชฒเซ เช เชซเชพเชเชฒเชจเซ เชฐเชเชจเชพ เชเซเชเช. เชซเชพเชเชฒเชจเซ 4 เชญเชพเชเซเชฎเชพเช เชตเชฟเชญเชพเชเชฟเชค เชเชฐเซ เชถเชเชพเชฏ เชเซ: เชซเชพเชเชฒ เชนเซเชกเชฐ, เชเชฎเซเช เชนเซเชกเชฐ, เชชเซเชฒเซเช เช เชจเซ เชเชฎเซเช เชชเซเชคเซ. เช เชฎเชพเชฐเชพ เชนเซเชคเซเช เชฎเชพเชเซ, เช เชฎเชพเชฐเซ เชซเชเซเชค เชนเซเชกเชฐเชฎเชพเช เชถเซเช เชฒเชเซเชฏเซเช เชเซ เชคเซ เชเชพเชฃเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ.
เชนเซเชกเชฐเชจเชพ เชชเซเชฐเชฅเชฎ เชฌเซ เชฌเชพเชเช BM เชธเชนเซ เชเซ, เชชเชเซ เชฌเชพเชเชเซเชธเชฎเชพเช เชซเชพเชเชฒเชจเซเช เชเชฆ เชกเชฌเชฒ เชถเชฌเซเชฆเชฎเชพเช เชฒเชเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เชเชเชพเชฎเซ 4 เชฌเชพเชเช เชเชฐเชเซเชทเชฟเชค เชเซ เช เชจเซ เชคเซเชฎเชพเช เชถเซเชจเซเชฏ เชนเซเชตเซเช เชเชตเชถเซเชฏเช เชเซ, เช เชจเซ เช เชเชคเซ, เชฌเซเชเชพ เชกเชฌเชฒ เชถเชฌเซเชฆเชจเซ เชถเชฐเซเชเชคเชฅเซ เชเชซเชธเซเช เชถเชพเชฎเซเชฒ เชเซ. เชเชฎเซเชเชจเชพ เชตเชพเชธเซเชคเชตเชฟเช เชฌเชพเชเชเซเชธ เชชเชฐ เชซเชพเชเชฒ เชเชฐเซ. 24-เชฌเซเช bmp เชซเชพเชเชฒเชฎเชพเช, เชฆเชฐเซเช เชชเชฟเชเซเชธเซเชฒ เชคเซเชฐเชฃ BGR เชฌเชพเชเชเซเชธ เชธเชพเชฅเซ เชเชจเซเชเซเชกเซเชก เชเซ.
เชนเชตเซ เชเชชเชฃเซ เชเชพเชฃเซเช เชเซเช เชเซ เชเชฎเซเช เชชเชฐ เชเซเชตเซ เชฐเซเชคเซ เชชเชนเซเชเชเชตเซเช, เชเซ เชฌเชพเชเซ เชเซ เชคเซ เชธเชฎเชเชตเชพเชจเซเช เชเซ เชเซ เชเชชเชฃเซ เชคเซเชฏเชพเช เชเชฐเซเชฐเซ เชฎเชพเชนเชฟเชคเซ เชเซเชตเซ เชฐเซเชคเซ เชฒเชเซ เชถเชเซเช. เช เชฎเชพเชเซ เชเชชเชฃเชจเซ LSB เชชเชฆเซเชงเชคเชฟเชจเซ เชเชฐเซเชฐ เชชเชกเชถเซ. เชชเชฆเซเชงเชคเชฟเชจเซ เชธเชพเชฐ เชจเซเชเซ เชฎเซเชเชฌ เชเซ: เช เชฎเซ เชฐเชเช เชเชจเซเชเซเชกเชฟเชเช เชฎเชพเชเซ เชเชตเชพเชฌเชฆเชพเชฐ เชฌเชพเชเชเซเชธเชฎเชพเช เชเชเชพเชฎเชพเช เชเชเชพ เชจเซเชเชงเชชเชพเชคเซเชฐ เชฌเชฟเชเซเชธเชจเซ เชฌเชฆเชฒเซเช เชเซเช. เชเชพเชฒเซ เชเชนเซเช เชเซ เชเซ เชเชชเชฃเชพ เชเซเชชเซเชค เชธเชเชฆเซเชถเชจเซ เชเชเชพเชฎเซ เชฌเชพเชเช 11001011 เชเซ, เช เชจเซ เชเชฎเซเชเชฎเชพเชเชจเชพ เชฌเชพเชเช...11101100 01001110 01111100 0101100111... เชเซ, เชคเซ เชเชจเซเชเซเชกเชฟเชเช เชเชจเชพ เชเซเชตเซเช เชฆเซเชเชพเชถเซ. เช เชฎเซ เชเซเชชเซเชค เชธเชเชฆเซเชถ เชฌเชพเชเชเชจเซ 4 เชเซ-เชฌเซเช เชญเชพเชเซเชฎเชพเช เชตเชฟเชญเชพเชเชฟเชค เชเชฐเซเชถเซเช: 11, 00, 10, 11, เช เชจเซ เชชเชฐเชฟเชฃเชพเชฎเซ เชเซเชเชกเชพเช เชธเชพเชฅเซ เชเชฌเซเชจเชพ เชฒเซ-เชเชฐเซเชกเชฐ เชฌเชฟเชเซเชธเชจเซ เชฌเชฆเชฒเซเชถเซเช: ...11101111 01001100 01111110 0101100111โฆ. เชเชตเชพ เชฐเชฟเชชเซเชฒเซเชธเชฎเซเชจเซเช เชธเชพเชฎเชพเชจเซเชฏ เชฐเซเชคเซ เชฎเชพเชจเชต เชเชเช เชฎเชพเชเซ เชงเซเชฏเชพเชจเชชเชพเชคเซเชฐ เชจเชฅเซ. เชคเชฆเซเชชเชฐเชพเชเชค, เชเชฃเชพ เชเซเชจเชพ เชเชเชเชชเซเช เชเชชเชเชฐเชฃเซ เชเชตเชพ เชจเชพเชจเชพ เชซเซเชฐเชซเชพเชฐเซเชจเซ เชชเซเชฐเชฆเชฐเซเชถเชฟเชค เชเชฐเชตเชพเชฎเชพเช เชชเชฃ เชธเชฎเชฐเซเชฅ เชนเชถเซ เชจเชนเซเช.
เชคเซ เชธเซเชชเชทเซเช เชเซ เชเซ เชคเชฎเซ เชฎเชพเชคเซเชฐ 2 เชเชเชพเชฎเชพเช เชเชเชพ เชจเซเชเชงเชชเชพเชคเซเชฐ เชฌเชฟเชเซเชธ เช เชจเชนเซเช, เชชเชฐเชเชคเซ เชคเซเชฎเชพเชเชจเซ เชเซเชเชชเชฃ เชธเชเชเซเชฏเชพ เชฌเชฆเชฒเซ เชถเชเซ เชเซ. เชจเซเชเซเชจเซ เชชเซเชเชฐเซเชจ เชเซ: เชเชชเชฃเซ เชเซเชเชฒเชพ เชตเชงเซ เชฌเชฟเชเซเชธ เชฌเชฆเชฒเซเชถเซเช, เชคเซเชเชฒเซ เชตเชงเซ เชฎเชพเชนเชฟเชคเซ เชเชชเชฃเซ เชเซเชชเชพเชตเซ เชถเชเซเชถเซเช เช เชจเซ เชเชจเชพเชฅเซ เชฎเซเชณ เชเชฎเซเชเชฎเชพเช เชตเชงเซ เชฆเชเชฒ เชฅเชถเซ. เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เช เชนเซเช เชฌเซ เชเชฌเซเช เชเซ:
เชฎเชพเชฐเชพ เชถเซเชฐเซเชทเซเช เชชเซเชฐเชฏเชพเชธเซ เชเชคเชพเช, เชนเซเช เชคเซเชฎเชจเซ เชตเชเซเชเซเชจเซ เชคเชซเชพเชตเชค เชเซเช เชถเชเซเชฏเซ เชจเชนเซเช, เชชเชฐเชเชคเซ เชคเซเชฎ เชเชคเชพเช, เชฌเซเชเซ เชเชฌเซเชฎเชพเช, เชตเชฐเซเชฃเชตเซเชฒ เชชเชฆเซเชงเชคเชฟเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ, เชฒเซเชตเชฟเชธ เชเซเชฐเซเชฒเชจเซ เชเชตเชฟเชคเชพ "เชง เชนเชจเซเชเชฟเชเช เชเชซ เชง เชธเซเชจเชพเชฐเซเช" เชเซเชชเชพเชฏเซเชฒ เชเซ. เชเซ เชคเชฎเซ เชเชเชฒเซเช เชตเชพเชเชเซเชฏเซเช เชเซ, เชคเซ เชเชฆเชพเช เชคเชฎเชจเซ เช
เชฎเชฒเซเชเชฐเชฃ เชตเชฟเชถเซ เชเชพเชฃเชตเชพเชฎเชพเช เชฐเชธ เชนเชถเซ. เชคเซ เชเชเชฆเชฎ เชธเชฐเชณ เชเซ, เชชเชฐเชเชคเซ เชนเซเช เชคเชฎเชจเซ เชคเชฐเชค เช เชเซเชคเชตเชฃเซ เชเชชเซเชถ เชเซ เชฌเชงเซเช เชกเซเชฒเซเชซเซเชฎเชพเช เชฅเช เชเชฏเซเช เชเซ. เชเชจเชพ เชฌเซ เชเชพเชฐเชฃเซ เชเซ: 1. เชฎเชจเซ เชฒเชพเชเซ เชเซ เชเซ เชกเซเชฒเซเชซเซ เชเช เชธเชพเชฐเซ เชญเชพเชทเชพ เชเซ; 2. เช เชชเซเชฐเซเชเซเชฐเชพเชฎเชจเซ เชเชจเซเชฎ เชเซเชฎเซเชชเซเชฏเซเชเชฐ เชตเชฟเชเชจเชจเซ เชฎเซเชณเชญเซเชค เชฌเชพเชฌเชคเซ เชชเชฐ เชเซเชฐเซเชธ เชคเซเชฏเชพเชฐ เชเชฐเชตเชพเชจเซ เชชเซเชฐเชเซเชฐเชฟเชฏเชพเชฎเชพเช เชฅเชฏเซ เชนเชคเซ, เช
เชจเซ เชนเซเช เชเซเชฎเชจเซ เช เชเซเชฐเซเชธ เชถเซเชเชตเซ เชฐเชนเซเชฏเซ เชเซเช เชคเซเช เชนเชเซ เชธเซเชงเซ เชกเซเชฒเซเชซเซ เชธเชฟเชตเชพเชฏ เชฌเซเชเซเช เชเชเช เชเชพเชฃเชคเชพ เชจเชฅเซ. เชเซเช เชตเชพเชเซเชฏเชฐเชเชจเชพเชฅเซ เชชเชฐเชฟเชเชฟเชค เชจเชฅเซ เชคเซเชฎเชจเชพ เชฎเชพเชเซ, เชเช เชตเชธเซเชคเซ เชธเชฎเชเชพเชตเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ: shl x เช x เชฆเซเชตเชพเชฐเชพ เชกเชพเชฌเซ เชฌเชพเชเซเชจเซ เชฌเซเชเชตเชพเชเช เชถเชฟเชซเซเช เชเซ, shr x เช x เชฆเซเชตเชพเชฐเชพ เชเชฎเชฃเซ เชคเชฐเชซเชจเซ เชฌเซเชเชตเชพเชเช เชถเชฟเชซเซเช เชเซ.
เช
เชฎเซ เชงเชพเชฐเซเช เชเซเช เชเซ เช
เชฎเซ เชธเซเชเซเชฐเชฟเชเชเชฎเชพเช เชธเชเชเซเชฐเชนเชฟเชค เชเซเชเซเชธเซเชเชจเซ เชเชจเซเชเซเชจเชฐเชฎเชพเช เชฒเชเซ เชฐเชนเซเชฏเชพ เชเซเช เช
เชจเซ เชจเซเชเซเชจเชพ เชฌเซ เชฌเชพเชเชเซเชธเชจเซ เชฌเชฆเชฒเซ เชฐเชนเซเชฏเชพ เชเซเช:
เชฐเซเชเซเชฐเซเชกเชฟเชเช เชเซเชก:
i:=1 เชฅเซ เชฒเชเชฌเชพเช(str) เชฎเชพเชเซ เชเชฐเซ
เชถเชฐเซเชเชค
l1:=byte(str[i]) shr 6;
l2:=byte(str[i]) shl 2; l2:=l2 shr 6;
l3:=byte(str[i]) shl 4; l3:=l3 shr 6;
l4:=byte(str[i]) shl 6; l4:=l4 shr 6;
f.ReadBuffer(tmp,1);
f.เชชเซเชเชฟเชถเชจ:=f.เชชเซเชเชฟเชถเชจ-1;
tmp:=((tmp shr 2) shl 2)+l1;
f.WriteBuffer(tmp,1);
f.ReadBuffer(tmp,1);
f.เชชเซเชเชฟเชถเชจ:=f.เชชเซเชเชฟเชถเชจ-1;
tmp:=((tmp shr 2) shl 2)+l2;
f.WriteBuffer(tmp,1);
f.ReadBuffer(tmp,1);
f.เชชเซเชเชฟเชถเชจ:=f.เชชเซเชเชฟเชถเชจ-1;
tmp:=((tmp shr 2) shl 2)+l3;
f.WriteBuffer(tmp,1);
f.ReadBuffer(tmp,1);
f.เชชเซเชเชฟเชถเชจ:=f.เชชเซเชเชฟเชถเชจ-1;
tmp:=((tmp shr 2) shl 2)+l4;
f.WriteBuffer(tmp,1);
เช เชเชค;
เชตเชพเชเชเชตเชพ เชฎเชพเชเซ เชเซเชก:
i:=1 เชฅเซ MsgSize เชฎเชพเชเซ เชเชฐเซ
เชถเชฐเซเชเชค
f.ReadBuffer(tmp,1);
l1:=tmp shl 6;
f.ReadBuffer(tmp,1);
l2:=tmp shl 6; l2:=l2 shr 2;
f.ReadBuffer(tmp,1);
l3:=tmp shl 6; l3:=l3 shr 4;
f.ReadBuffer(tmp,1);
l4:=tmp shl 6; l4:=l4 shr 6;
str:=str+char(l1+l2+l3+l4);
เช เชเชค;
เชธเชพเชฐเซเช, เชเชฐเซเชเชฐ เชเชณเชธเซ เชฒเซเชเซ เชฎเชพเชเซ -
ะกะฟะฐัะธะฑะพ.
เชธเซเชฐเซเชธ: www.habr.com