BOYYANG/1/blog/compressed/【哲风壁纸】白花-美女

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


#go
#后端
#webp