Maison > Article > développement back-end > golang webpgif
Avec l'amélioration de la bande passante du réseau, de plus en plus de sites Web commencent à utiliser des images animées pour enrichir l'expérience utilisateur. Il existe différents formats de fichiers pour les images animées, notamment WebP et GIF. WebP est un nouveau format de fichier image développé par Google. Comparé aux formats tels que JPG et PNG, WebP peut réduire la taille des fichiers image, tout en ayant un meilleur taux de compression et une qualité d'image supérieure. GIF est un format d'image animée à l'ancienne. Bien que sa taille de fichier soit plus grande que celle de WebP, ses performances en images animées sont très bonnes.
Dans cette situation, de nombreux webmasters et développeurs doivent convertir les images animées au format WebP en images animées au format GIF. Pour cette raison, nous pouvons utiliser le langage de programmation Golang pour implémenter ce processus de conversion. A travers cet article, nous allons vous présenter comment utiliser golang pour convertir des images animées au format WebP en images animées au format GIF.
1. Préparation
Avant de convertir WebP en GIF, nous devons installer des bibliothèques Golang et un compilateur en langage C.
Installez la bibliothèque golang :
go get -u github.com/chai2010/webp go get -u github.com/lukeroth/ggif
Installez le compilateur du langage C :
sudo apt-get install build-essential
De plus, nous devons également préparer des images animées au format WebP et des fichiers d'images animées au format GIF.
2. Lire des images animées au format WebP
Avant de convertir des images animées au format WebP en images animées au format GIF, nous devons lire les images animées au format WebP. Dans Golang, de nombreuses bibliothèques sont disponibles pour nous.
Le code pour lire des images animées au format WebP est le suivant :
package main import ( "fmt" "image" _ "image/png" "io" "os" "github.com/chai2010/webp" ) func LoadWebPAnimatedImageFromFile(filename string) ([]*image.Paletted, int) { f, err := os.Open(filename) if err != nil { fmt.Println("error:", err) return nil, 0 } defer f.Close() img, err := webp.DecodeAll(f) if err != nil { fmt.Println("error:", err) return nil, 0 } return img.Frames, img.Delay[0] }
Notez que dans le code ci-dessus, nous utilisons la bibliothèque chai2010/webp pour lire des images animées au format WebP. L'utilisation de cette bibliothèque présente deux avantages importants : L'un est. qu'il prend en charge la lecture d'images animées, et l'autre est qu'il nous permet de convertir facilement des images animées au format WebP en images statiques ou en images animées au format PNG.
3. Convertir en images animées au format GIF
Après avoir lu les images animées au format WebP, nous devons les convertir en images animées au format GIF. Dans Golang, il existe une bibliothèque appelée "ggif" qui peut nous aider à réaliser ce processus de conversion.
Le code pour convertir des images animées au format GIF est le suivant :
package main import ( "fmt" "image" "os" "github.com/lukeroth/ggif" ) func ConvertToGIF(frames []*image.Paletted, outname string, delay int) { f, err := os.Create(outname) if err != nil { fmt.Println("error:", err) return } defer f.Close() if err := ggif.EncodeAll(f, frames, delay); err != nil { fmt.Println("error:", err) } }
Dans le code ci-dessus, nous utilisons la bibliothèque ggif pour convertir des images animées au format WebP en images animées au format GIF. Cette bibliothèque est livrée avec une bonne documentation et des exemples pour nous aider à mettre en œuvre diverses techniques de conversion.
4. Code complet
Ensuite, nous intégrons le code WebP complet au code GIF :
package main import ( "fmt" "image" _ "image/png" "io" "os" "github.com/chai2010/webp" "github.com/lukeroth/ggif" ) func main() { frames, delay := LoadWebPAnimatedImageFromFile("input.webp") ConvertToGIF(frames, "output.gif", delay) } func LoadWebPAnimatedImageFromFile(filename string) ([]*image.Paletted, int) { f, err := os.Open(filename) if err != nil { fmt.Println("error:", err) return nil, 0 } defer f.Close() img, err := webp.DecodeAll(f) if err != nil { fmt.Println("error:", err) return nil, 0 } return img.Frames, img.Delay[0] } func ConvertToGIF(frames []*image.Paletted, outname string, delay int) { f, err := os.Create(outname) if err != nil { fmt.Println("error:", err) return } defer f.Close() if err := ggif.EncodeAll(f, frames, delay); err != nil { fmt.Println("error:", err) } }
Avant d'exécuter ce code, vous devez remplacer "input.webp" par le nom de votre fichier image animée au format WebP .
5. Résumé
Dans cet article, nous vous avons présenté comment utiliser le langage de programmation golang pour convertir des images animées au format WebP en images animées au format GIF. Grâce à ce processus, nous pouvons facilement convertir diverses images animées requises par le site Web dans des formats appropriés afin que les utilisateurs puissent avoir une meilleure expérience lors de la navigation sur le site Web.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!