c - 如何从图像大小中提取列数和行数

标签 c netpbm

我必须提取 pgm 图像。我所拥有的只是整个 PGM 图像的大小,即 505 我尝试从该图像中提取行数和列数。 整数大小 = 505;

一开始,我认为 Number of columns 应该是 int col = 505/8//1字节大小 int 行 = 列 *8

不知道这样说是否正确?请指教

最佳答案

PGM 图像可以有任意空白,每个像素至少有 1 个字节,加上由 3 个 ASCII 数字和 6 个其他字节组成的 header 以及可选的填充,因此给定大小 505,任何图像中最多有 495 个像素。矩形排列,仅从尺寸上无法说明这一点,如果您能读懂图像的前三行,一切都会显露出来。

文件大小很有用 - 它提供了足以存储像素的缓冲区大小,但它没有告诉您它们如何排列。

关于c - 如何从图像大小中提取列数和行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27279927/

相关文章:

c - C语言:如何使用宏作为装饰器?

image - 图像中的额外数据 (PPM/PAM/PNM)

c - C中大图像和窄图像的转置

c - 在 C 中使用 scanf() 连续读取两个字符

c - 使用带有动态数组的结构指针的内存分配 (realloc) 时出错

c - C中双下划线的使用

c中的循环移位