求大神 这个写PNG图片数据的一段代码中有几个地方不明白
//
// /* top margin */
// memset(row, 0xff, (realwidth + 7) / 8);
// for(y=0; y<margin * size; y++)
// {
// png_write_row(png_ptr, row);
// }
//
// /* data */
// p = qrcode->data;
// for(y=0; y<qrcode->width; y++)
// {
// bit = 7;
// memset(row, 0xff, (realwidth + 7) / 8);
// q = row;
// q += margin * size / 8;
// bit = 7 - (margin * size % 8);
// for(x=0; x<qrcode->width; x++)
// {
// for(xx=0; xx<size; xx++)
// {
// *q ^= (*p & 1) << bit;
// bit--;
// if(bit < 0)
// {
// q++;
// bit = 7;
// }
// }
// p++;
// }
// for(yy=0; yy<size; yy++)
// {
// png_write_row(png_ptr, row);
// }
// }
// /* bottom margin */
// memset(row, 0xff, (realwidth + 7) / 8);
// for(y=0; y<margin * size; y++)
// {
// png_write_row(png_ptr, row);
// }
以上是代码
具体就是
// for(xx=0; xx<size; xx++)
// {
// *q ^= (*p & 1) << bit;
// bit--;
// if(bit < 0)
// {
// q++;
// bit = 7;
// }
// }
这段循环的内容看不大懂 求大神帮忙