나는 스테 가노 그래피를 가지고 놀고있다. 이미지에서 텍스트 파일을 가져 오려고합니다. 파일을 읽고 비트를 얻을 수 있지만이 비트를 추출하는 데 문제가 있습니다.비트 추출 및 스테 가노 그래피
int getbits(pixel p) {
return p & 0x03;
}
char extract (pixel* image) {
static int postion;
postion = 0;
postion = *image;
postion++;
char curChar;
curChar = '\0';
for(int i = 0; i<4; ++i) {
curChar = curChar << 2;
curChar = curChar | getbits(postion);
}
return curChar;
}
픽셀은 서명되지 않은 문자입니다. 반환 값을 extract()
및 fputc(3)
이라고하는 루프가 있습니다. 나는이 쓰레기들로부터 쓰레기를 얻는 것 같아. 그래서 나는 대용량 (1.5 기가) txt 파일을 보게된다. 당신이 OLI은 즉시 덮어 쓰기하고 지적으로, 수를 유지하기 위해 정적 VAR를 사용하려고 시도하는 동안 때문에 [편집] -
void decode(PgmType* pgm, char output[80])
{
FILE*outstream;
int i, length;
outstream = fopen(output, "w");
if(!outstream)
{
fatal("Could not open");
}
for(i=0; i < 16; ++i)
{
length = length << 2;
length = length | getbits(*pgm->image);
}
if ((length* 4) < (pgm->width * pgm->height))
{
fatal("File Too Big");
}
for (i = 0 ;i<length; ++i)
{
fputc(extract(pgm->image), outstream);
}
fclose(outstream);
}
속기 또는 ** 스테 가노 그래피 **? –
extract를 호출하는 루프를 보여줍니다. 이미지를 올바르게 순환하고 있음을 보여 주어야합니다. – borrible
@borrible 루프를 포함했습니다. –