
go如何将其它图片文件转为webp图片格式
作者: boyyang
分类: 后端开发
发布: 2024-12-23 07:01:01
更新: 2025-03-23 12:42:34
浏览: 192
之前我使用 github.com/chai2010/webp 库对图片进行转换的,开发过程中没有遇到啥大问题,但是打包部署的时候问题不断,根据报错信息猜测就是该库用了c语言或者其它啥的,导致打包的时候出现一些问题。网上找了很多方法都没法解决。这是github.com/chai2010/webp 的简单使用链接 https://www.boyyang.cn/detail/?id=66
后来在网上找了别的库,github.com/nickalie/go-webpbin 解决了打包问题,但是这里面还是有一些坑的,go-webpbin的简单使用如下:
package main
import (
"bytes"
"fmt"
"github.com/nickalie/go-webpbin"
"image"
"os"
)
func main() {
err := Image2Webp()
if err != nil {
fmt.Println(err)
}
}
func Image2Webp() (err error) {
imgBytes, err := os.ReadFile("images/test.png")
if err != nil {
return err
}
err = webpbin.
NewCWebP().
Quality(90).
Input(bytes.NewReader(imgBytes)).
OutputFile("girl.webp").
Run()
if err != nil {
return err
}
return nil
}
部署的时候可能会出现以下错误:
xit status 1. .bin/webp/cwebp: /lib64/libm.so.6: version `GLIBC_2.29' not found
那就是服务器的依赖版本过低,需要GLIBC升级到对应版本后就没有问题了。
如果在部署的文件夹中没有 .bin/webp文件那么可能需要自己下载该依赖了
apk add --no-cache --update libpng-dev libjpeg-turbo-dev giflib-dev tiff-dev autoconf automake make gcc g++ wget
wget https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-0.6.0.tar.gz && \
tar -xvzf libwebp-0.6.0.tar.gz && \
mv libwebp-0.6.0 libwebp && \
rm libwebp-0.6.0.tar.gz && \
cd /libwebp && \
./configure && \
make && \
make install && \
rm -rf libwebp