如何在Go中创建透明gif?

如何在Go中创建透明gif?,go,gif,Go,Gif,当我在Go中编码gif时,背景是全黑的。如何使背景透明 下面是我的http处理程序中的一些代码。(w是负责人) 我阅读了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, 25

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

下面是我的http处理程序中的一些代码。(w是负责人)


我阅读了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{}) 

注意:这可以通过使用您自己的
*image.Paletted
作为要编码的图像(如图所示)来完成,或者通过将
量化器
字段设置为将透明颜色放入调色板(可能是在检测图像中的任何透明度时)来完成。当
量化器
字段为nil时,默认情况下使用无透明度的静态调色板。
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{})