【发布时间】:2018-04-20 23:50:45
【问题描述】:
我正在编写一个生成大量图像的应用程序。每帧大小为 1280x800 像素,每个像素有 1 个字节用于颜色信息(灰度)。每个帧都必须写入磁盘。
目前我只是将原始像素数据转储到磁盘上的二进制文件中。然后可以使用我也创建的特殊查看器查看该文件。
这是一个非常不令人满意的解决方案,因为无法直接查看/处理图像。他们总是必须通过我的自定义查看器/转换器运行。
有没有一种图像格式可以用来将图像写入磁盘:
- 写入速度很快(无压缩等)
- 不会大大增加最终文件的大小
- 支持将我的原始像素缓冲区转储到那里(没有对齐更改等)
- 可由常用应用程序(Windows Explorer、Paint、Photoshop 等)读取
我已经尝试使用 .png,但由于压缩,文件生成时间过长。
【问题讨论】:
-
我不要求任何图书馆。
-
使用格式意味着使用库或编写自己的库,这两者通常都被认为过于宽泛。另外,我认为引用的指南可能是为了更普遍地推断(但我可能错了)。
-
除了@lisyarus 的优秀建议之外,还可以考虑使用单独的线程将数据写入磁盘。
-
多少张图片是“一个巨大的数量”?您是否考虑过写信给
stdout,然后将ffmpeg作为单独的进程运行以创建数据视频——这也会引入一定程度的并行性并节省空间?