当我在Go中编码gif时,背景全是黑色的。如何使背景透明?
这是我的http处理程序中的一些代码。 (w是responseWriter)
m := image.NewRGBA(image.Rect(0, 0, pixelWidth, pixelHeight))
gif.Encode(w, m, &gif.Options{NumColors: 16})
答案 0 :(得分:6)
我阅读了image / gif的源代码,发现调色板上必须有透明的颜色。
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{})