使用 C++ 创建具有单一纯色的图像

Create an image with a single, solid color with C++

我想创建一个单一的纯色 PNG(或其他格式)图像。我如何在 C++ 中执行此操作?

如果可以接受任何通用格式,请编写一个 PPM 文件,它是一个类似于

的文本文件
P3 2 3 255
255 0 0
255 0 0
255 0 0
255 0 0
255 0 0
255 0 0

第一行是 PPM header: "P3" 标识文件格式, “2”是宽度, “3”是身高, “255”是样本值的范围 (0..255)。

“255 0 0”是红色像素(红色=255,绿色=0,蓝色=0)。 重复“255 0 0”直到您定义了宽度*高度像素。

然后,如果您需要 PNG,请使用 ImageMagick、GraphicsMagick 或其他转换器从 PPM 文件制作 PNG。如果您想在程序中执行此操作,则 ImageMagick 和 GraphicsMagick 都有 C++ 绑定,或者您可以只使用命令行:

convert file.ppm file.png

gm convert file.ppm file.png

PPM 的唯一问题是它不支持 alpha,所以如果需要 alpha 通道,这种方法会稍微复杂一些。一种方法是将 alpha 放在单独的 PGM 文件中(类似于 PPM,但只有一个通道),然后将它们与 ImageMagick 或 GraphicsMagick 合并。

由 Mark Setchell 编辑...如果您想了解有关 Glenn 伟大建议的更多信息,这里有一个很好的描述 here