为了账号安全,请及时绑定邮箱和手机立即绑定

Go标准库中是否有一个函数可以将缓冲区编码为go中的任何图像格式

Go标准库中是否有一个函数可以将缓冲区编码为go中的任何图像格式

Go
料青山看我应如是 2021-10-18 13:56:49
我正在编写一个带有一些简单图像处理的微服务。当我将处理过的图像发送回用户时,我必须在通过缓冲区写入之前对其进行正确编码。我可以很容易地检测到格式,所以这不是问题。目前我使用我的格式字符串并这样做:buffer := new(bytes.Buffer)switch format { //format is just a string as returned by image.Decode()case "jpeg":    err := jpeg.Encode(buffer, img, nil) //img is just an image.Image     if err != nil {        //Do some error handling    }case "png":    err := png.Encode(buffer, img)    if err != nil {        //Do some error handling    }//and so on...现在这工作得很好,当我开始认为我一定在这里错过了一些东西时,我正准备将它拆分成我自己的函数。没有像image.Encode(buffer, image, format).编写它并不是很麻烦,但是如果我开始重新实现核心语言功能,我的代码很快就会变得不必要地笨拙。如果它只是不存在,因为 go 是一种占用空间很小的整洁的语言,我很高兴。
查看完整描述

1 回答

?
人到中年有点甜

TA贡献1895条经验 获得超7个赞

标准库不包含将图像编码为任意格式的函数。

该库没有这种功能的一个原因是每种图像格式都有不同的编码选项。例如JPEG 选项PNG 选项是不同的。


查看完整回答
反对 回复 2021-10-18
  • 1 回答
  • 0 关注
  • 164 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信