如何在Go中创建透明的gif?

时间:2015-05-14 22:27:11

标签: go gif

当我在Go中编码gif时,背景全是黑色的。如何使背景透明?

这是我的http处理程序中的一些代码。 (w是responseWriter)

m := image.NewRGBA(image.Rect(0, 0, pixelWidth, pixelHeight))
gif.Encode(w, m, &gif.Options{NumColors: 16}) 

1 个答案:

答案 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{})