将数字2D数组保存到图像

Rok*_*Rok 7 c image numerical-methods

最近我一直在C中进行一些数值方法编程.对于错误修复和故障排除,很好地对所发生的事情进行一些直观表示.到目前为止,我一直在将数组区域输出到标准输出,但这并没有提供太多信息.我也和gnuplot一起玩了一下,但我不能得到它只保存图像,而不是坐标系和所有其他的东西.

所以我正在寻找一个教程或者一个库来向我展示如何将数组从c保存到图像中,能够保存到彩色图像会特别好.从数值到颜色的转换不是问题,我可以计算出来.如果有人指出我在这个领域的一些有用的库的方向,那将是一件好事.

最好的祝福

650*_*502 10

您可以使用.ppm文件格式......它非常简单,不需要库...

FILE *f = fopen("out.ppm", "wb");
fprintf(f, "P6\n%i %i 255\n", width, height);
for (int y=0; y<height; y++) {
    for (int x=0; x<width; x++) {
        fputc(red_value, f);   // 0 .. 255
        fputc(green_value, f); // 0 .. 255
        fputc(blue_value, f);  // 0 .. 255
    }
}
fclose(f);
Run Code Online (Sandbox Code Playgroud)

  • 大多数库实际上需要比上面显示的代码更多的代码,更不用说处理它们可能引入的许可,可移植性,依赖性和构建问题.当然他们会给你更多(例如图像压缩),但如果你只是需要从C程序生成图像,我认为ppm(或灰度的pgm)非常棒.许多程序和查看器都支持图像格式,或者您可以稍后使用imagemagick进行转换. (2认同)