我想将ppm文件保存为P6 . 这意味着只有字节 . 另外我想以并行方式保存它,所以这就是我使用 mmap
来映射内存的原因 .
这是我试图保存所有内容的代码的一部分:
char* map;
//...
int offset = sprintf(map,"P6\n%d %d\n%d\n",x,y,k);
int counter = offset;
for(i = 0; i < x; i++)
{
for(j = 0; j < y; j++)
{
map[counter] = outputRed[i][j];
map[counter+1] = outputGreen[i][j];
map[counter+2] = outputBlue[i][j];
counter++;
}
}
问题是我无法将红色,绿色和蓝色数组(都是int)中的值保存到 Map 值中 .
早些时候,我只是简单地使用 fputc
和 fopen(FILE,"wb")
这样做的一切都很好,但现在我不能这样做 .
有人能告诉我怎么做吗?
2 回答
您必须为每个像素增加
3
的计数器:复制每个像素的数据后,可以递增计数器 . 这可能更容易理解 .
确保为 Map 分配了足够的内存 .