C:将数组转换为RGB图像

时间:2014-08-24 18:20:49

标签: c arrays image

在C中,我有一个长度为3*DIM*DIM的无符号字符(即0到255之间)的1D数组,表示DIM*DIM像素图像,其中前3个像素是RGB级别第一个像素,第二个3像素是第二个像素的RGB级别,等等。我想将其保存为PNG图像。进行此转换的最简单,最轻量级的方法是什么?

显然,OpenGL可以读取和显示此表单的图像(GLUT_RGB),但DIM大于我的监视器屏幕的尺寸,因此只显示图像并截取屏幕截图不是一种选择。

目前,我一直在进行转换,只需将数组保存为CSV文件,将其加载到Mathematica中,然后将其导出为PNG,但这非常慢(单个7000 *约8分钟) 7000像素图像)。

1 个答案:

答案 0 :(得分:4)

您可以使用许多出色的第三方库将像素数据数组转换为图片。

  • libPNG是png图像的长期标准库。
  • LodePNG似乎也是一个很好的候选人。
  • 最后,ImageMagick是一个很棒的库,支持许多不同的图像格式。

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