我想创建一个纯色的PNG(或其他格式)图像。我怎么能用C ++做到这一点?
答案 0 :(得分:3)
如果可以接受任何通用格式,请编写PPM文件,该文件看起来像
P3 2 3 255
255 0 0
255 0 0
255 0 0
255 0 0
255 0 0
255 0 0
第一行是PPM标题: " 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。