当我使用 Go 编码 gif 时,背景总是黑色的。如何使背景透明?
这里是我的 http handler 中的一些代码。(w 是 responseWriter)
(请注意,本翻译仅供参考,具体语境需要根据实际情况调整。)
m := image.NewRGBA(image.Rect(0, 0, pixelWidth, pixelHeight))
gif.Encode(w, m, &gif.Options{NumColors: 16})
var palette color.Palette = color.Palette{
image.Transparent,
image.Black,
image.White,
color.RGBA{0, 255, 0, 255},
color.RGBA{0, 100, 0, 255},
}
m := image.NewPaletted(image.Rect(0, 0, pixelWidth, pixelHeight), palette)
gif.Encode(w, m, &gif.Options{})
*image.Paletted
作为要编码的图像(如所示),或者通过将gif.Options
的Quantizer
字段设置为将透明颜色放入调色板的draw.Quantizer
(可能在检测到图像中的任何透明度时)。当Quantizer
字段为空时,默认值是使用没有透明度的静态调色板。 - Dave C