将数组转换为RGB图像

3
在C语言中,我有一个长度为3*DIM*DIM的无符号字符数组(即0到255之间),它表示一个DIM*DIM的像素图像,其中前3个像素是第一个像素的RGB级别,接下来3个像素是第二个像素的RGB级别,依此类推。我想将其保存为PNG图像。什么是最简单、最轻量级的方法将其转换?
显然,OpenGL可以读取和显示这种形式的图像(GLUT_RGB),但是DIM大于我的监视器屏幕的尺寸,因此简单地显示图像并截屏不是一个选择。
目前,我一直通过将数组保存到CSV文件中,加载到Mathematica中,然后导出为PNG来进行转换,但这非常缓慢(对于一个单独的7000*7000像素图像需要8分钟左右)。
1个回答

4
有许多优秀的第三方库可用于将像素数据数组转换为图片。
  • libPNG是一个长期支持png图像的标准库。
  • LodePNG也是一个不错的选择。
  • 最后,ImageMagick是一个支持许多不同图像格式的强大库。

所有这些库都支持C语言,并且相对容易使用。


LodePNG似乎是完美的方法;它只是一个单独的.h文件!感谢提供参考。在写这个问题之前,我也看到了libPNG,但它似乎有些过度,所以我选择了LodePNG。 - DumpsterDoofus

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接