Example #1
0
/*
	valの内容をwmfp->imgに埋め込む
	@val 透かしとして埋め込むバイトの内容
	@wmfp 処理対象のWFILEのアドレス
*/
static void wwrite_byte(const char val, WFILE *wmfp)
{
	int i, bit;
	png_byte color;

	wmfp->bs = openBitStream(&val, sizeof(char), "r");	/* valをもとにビットストリームを作成 */

	for(i = 0; i < 8; i ++){	/* 8ドット分ループ */
		color = getColorFromOft(wmfp);	/* 処理すべきバイトを取得する */

		bit = readBitStream(wmfp->bs);

		if(bit == 1){
			set_nbit8((unsigned char *)&color, wmfp->offset.plane_no);
		}
		else if(bit == 0){
			clr_nbit8((unsigned char *)&color, wmfp->offset.plane_no);
		}

#ifdef DEBUG
		printOffset(&wmfp->offset);
#endif
		setColorFromOft(color, wmfp);	/* ここでrow_pointersに格納 */

		/* 1ドット分だけオフセットを進める */
		wseek_dot(wmfp);
	}

	closeBitStream(wmfp->bs);
}
Example #2
0
static void testBitStream(Common::BitStream &bitStream, const byte (&compValues)[11]) {
	byte data[11];
	readBitStream(bitStream, data);

	for (size_t i = 0; i < ARRAYSIZE(compValues); i++)
		EXPECT_EQ(data[i], compValues[i]) << "At index " << i;
}