$B $B$J$*!$(B2$BLd0J>eA*Br$7$?>l9g$K$O!$$O$8$a$N(B1$BLd$K$D$$$F:NE@$7$^$9!#(B

$BLd(B7 $Be0L%S%C%H$O(B0)$B!#(B (2)$B)"(Bvoid SetPixel( int x , int y , unsigned long Color); $B!T5!G=!U(B $B2hA|%G!<%?$K2hAGCM$r@_Dj$9$k!#(B $B!T0z?t!U(B x $B@_Dj$7$?$$2hAG$N2#J}8~$N:BI8CM(B y $B@_Dj$7$?$$2hAG$N=DJ}8~$N:BI8CM(B Color $B2<0L(B24$B%S%C%H$K@_Dj$9$k2hAGCM(B($B>e0L%S%C%H$OL5;k(B) 5. $BJ8;zNs$H2hA|%G!<%?$H$NBP1~$O!$?^$K<($9$H$*$j$G$"$k!#Kd9~$_$N>l9g$O!$J8;z(B $BNs$N@hF,$+$i(B2$B%S%C%H$:$D $B?^(B $B=hM}$N35MW(B [$B%W%m%0%i%`(B] #include <string.h> unsigned long GetPixel( int x , int y ) ; void SetPixel( int x , int y , unsigned long Color ) ; #define MAXTEXT 1024 extern int Width ; extern int Height ; void WriteHiddenText( unsigned char *Ptr) /* $BJ8;zNs$NKd9~$_(B */ { unsigned char Bit2 ; unsigned long Color ; int x , y , Cnt , Index = 0 ; Cnt = [ a ] ; for( y = 0 ; y < Height ; y++ ) { for( x = 0 ; x < Width ; x++ ) { Color = GetPixel( x , y ) ; Color &= 0xfffffc ; Bit2 = *Ptr ; Bit2 >>= ( 6 - Index * 2 ) ; Bit2 &= 0x3 ; Color |= Bit2 ; SetPixel( x , y , Color ) ; Index++ ; if ( Index > 3 ) { Ptr++ ; Index = 0 ; } Cnt-- ; if ( Cnt <= 0 ) break ; } if ( Cnt<= 0 ) break ; } } int ReadHiddenText( unsigned char *Ptr ) /* $BJ8;zNs$NI|85(B */ { unsigned char Bit2 ; unsigned long Color ; int x , y , Cnt = 1 , Index = 0 ; *Ptr = '\0' ; for( y = 0 ; y < Height ; y++ ) { for( x = 0 ; x < Width ; x++ ) { Color = GetPixel( x , y ) ; Bit2 = ( unsigned char )Color ; Bit2 &= 0x3 ; [ b ] ; [ c ] ; if (( Index == 3 ) && ( *Ptr == '\0' )) return Cnt ; Index++ ; if ( Index > 3 ) { Ptr++ ; [ d ] ; Index = 0 ; Cnt++ ; if ( Cnt > MAXTEXT ) { *( Ptr - 1 ) = '\0' ; return MAXTEXT ; } } } } return Cnt ; } $B@_Ld(B $B%W%m%0%i%`Cf$N(B[ ]$B$KF~$l$k@5$7$$Ez$($r(B, $B2rEz72$NCf$+$iA*%Y!#(B a$B$K4X$9$k2rEz72(B $B%"(B strlen( Ptr ) $B%$(B strlen( Ptr ) + 1 $B%&(B ( strlen( Ptr ) + 1 ) * 2 $B%((B ( strlen( Ptr ) + 1 ) * 4 $B%*(B ( strlen( Ptr ) + 1 ) * 8
b$B$K4X$9$k2rEz72(B $B%"(B Bit2 <<= Index $B%$(B Bit2 >>= Index $B%&(B Bit2 <<= ( 6 - Index * 2 ) $B%((B Bit2 >>= ( 6 - Index * 2 ) $B%*(B Bit2 <<= ( Index * 2 ) $B%+(B Bit2 >>= ( Index * 2 )
c$B!$(Bd$B$K4X$9$k2rEz72(B $B%"(B *( Ptr + 1 ) = '\0' $B%$(B *( Ptr + 1 ) = 0xff $B%&(B *( Ptr $B!>(B1 ) = '\0' $B%((B *( Ptr - 1 ) = 0xff $B%*(B *Ptr = '/0' $B%+(B *Ptr = 0xff $B%-(B *Ptr |= Bit2 $B%/(B *Ptr &= Bit2 $B%1(B *Ptr *= Bit2 $B%3(B *Ptr /= Bit2