我需要为我的学校项目读取二进制 (p4) 格式的 .PBM 图像。
我试过这样的事情:
for (int i = 0; i < img->height; i++)
{
for (int x = 0; x < img->width; x++)
{
c = fgetc(fp);
ungetc(c, fp);
lum_val = fgetc(fp);
/* Decode the image contents byte-by-byte. */
for (k = 0; k < 8; k++) {
printf("%d ", (lum_val >> (7 - k)) & 0x1);
img->pixels[i][x].r = (lum_val >> (7 - k)) & 0x1;
img->pixels[i][x].g = (lum_val >> (7 - k)) & 0x1;
img->pixels[i][x].b = (lum_val >> (7 - k)) & 0x1;
}
}
}
基于 od 此源代码:https ://github.com/nkkav/libpnmio/blob/master/src/pnmio.c 但它不起作用:(它只给出随机 0 和 1 但不是它应该的方式是。