【问题标题】:go - Encoding gif image.Imagego - 编码 gif image.Image
【发布时间】:2013-06-19 06:56:40
【问题描述】:

image/jpeg 和 image/png 包具有读取和写入 jpeg 和 png 图像的 Decode 和 Encode 函数,但 image/gif 包没有 - 只有 Decode 和 DecodeAll。

那么,关于如何将 gif image.Image 编码为 io.Writer 有什么想法吗?

【问题讨论】:

  • 我知道这不能回答你的问题,但你能澄清一下为什么 PNG 不能这样做吗?
  • 不是你的意思,或者更确切地说,它是如何工作的。如果可行,肯定会。
  • 我想知道您是否可以简单地将图像编码为 PNG。除非您需要动画(只有 GIF 支持)或超小的 1 像素图像(最好是手工制作的),否则 PNG 在所有其他方面在技术上都更胜一筹。正如您所说,Go 支持 PNG 编码。这会满足您在应用中的需要吗?
  • 恐怕不行,想要动画。现在我只是阻止 gif 文件 - 将该功能留待以后使用。还是谢谢你。

标签: image go


【解决方案1】:

Go 标准库不包含 GIF 编码器。

我认为您最好的选择是使用cgo 与编码 GIF 的 C 库接口。 giflib 看起来相当直接。

或者,您可以移植 relevant parts of giflib 以将它们提交到标准库。

GIF 编码不普及是有历史原因的——它被使用的 LZW 压缩专利所涵盖。然而,这些专利现在已经过期,所以没有理由不在标准库中使用压缩器,只是 GIF 不像以前那么受欢迎了!

【讨论】:

  • 这已经过时了。 image/gif 暂时包含 GIF 编码器。
猜你喜欢
  • 2017-05-26
  • 2021-07-13
  • 2011-04-21
  • 2018-09-08
  • 2014-12-27
  • 2014-04-03
  • 2017-03-15
  • 1970-01-01
  • 2022-12-02
相关资源
最近更新 更多