C: 将数组转换为 RGB 图像
Posted
技术标签:
【中文标题】C: 将数组转换为 RGB 图像【英文标题】:C: Convert array to RGB image 【发布时间】:2014-08-24 18:20:48 【问题描述】:在 C 中,我有一个长度为 3*DIM*DIM
的无符号字符(即 0 到 255 之间)的一维数组,它表示 DIM*DIM
像素图像,其中前 3 个像素是第一个像素的 RGB 级别,第二个 3 像素是第二个像素的 RGB 级别,等等。我想将其保存为 PNG 图像。进行这种转换的最简单、最轻量级的方法是什么?
显然 OpenGL 可以读取和显示这种形式 (GLUT_RGB) 的图像,但 DIM
比我的显示器屏幕的尺寸大,所以不能简单地显示图像并截屏。
目前,我一直在进行转换,只需将数组保存到 CSV 文件,将其加载到 Mathematica 中,然后将其导出为 PNG,但这非常慢(单个 7000 * 约 8 分钟) 7000 像素图像)。
【问题讨论】:
【参考方案1】:您可以使用许多优秀的第三方库将像素数据数组转换为图片。
libPNG 是一个长期存在的 png 图片标准库。 LodePNG 似乎也是一个不错的候选人。 最后,ImageMagick 是一个很棒的库,支持许多不同的图像格式。所有这些都支持C,并且相对容易使用。
【讨论】:
LodePNG 似乎是完美的方法;它只是一个 .h 文件!感谢您的参考。在写这个问题之前我也看过 libPNG,但它似乎有点过头了,所以 LodePNG 就是这样。以上是关于C: 将数组转换为 RGB 图像的主要内容,如果未能解决你的问题,请参考以下文章