如何使用 golang 压缩 gif 并调整其大小

wkz*_*kzq 5 image-processing gif go

是否有方法或库来使用 golang 压缩和调整 gif 大小?

ps:我尝试过bimg,但它不支持 gif。

Bil*_*uan 4

请参阅文档https://golang.org/pkg/image/gif/#GIF

func DecodeAll(r io.Reader) (*GIF, error)
Run Code Online (Sandbox Code Playgroud)

现在你可以获得一个 GIF 结构

type GIF struct {
        Image []*image.Paletted // The successive images.
Run Code Online (Sandbox Code Playgroud)

然后你可以调整 GIF 中每个图像的大小。

for _,img:=range gif.Image{
    resize(img)
}
Run Code Online (Sandbox Code Playgroud)

PS:image.Paletted实现了image.Image,因此您可以使用https://github.com/nfnt/resize来调整图像的大小。