有没有办法在不使用 ImageMagick 或其他第三方软件的情况下在 R 中制作 GIF?
Posted
技术标签:
【中文标题】有没有办法在不使用 ImageMagick 或其他第三方软件的情况下在 R 中制作 GIF?【英文标题】:Is there a way to make GIFs in R without the use of ImageMagick or other third party software? 【发布时间】:2017-05-12 01:29:35 【问题描述】:我一直在尝试从 R 中生成和保存的绘图生成 GIF。在当前系统中,我们使用 ImageMagick 会带来很大的不便。是否有任何其他可以创建 GIF 的 R 原生方式或包?我研究过堆栈溢出,只发现涉及 ImageMagick 的响应。
【问题讨论】:
如果有帮助,pngs 是一种类似的文件形式,并且可以在带有png
函数的基础 R 中使用。
我已经在使用 pngs 作为将转换为 gif 的绘图的保存格式。你知道有什么方法可以轻松地将它们转换成 gif 吗?
这是一个很好的 superuser post 使用 imagemagick 将 png 转换为 jpeg。我想在任何代码行中用 gif 替换 jpeg 就可以了。
【参考方案1】:
没有 R 内置的方式来制作不依赖外部库的 gif(据我所知)将保存为单帧的图像转换为 gif。
对于这种转换,ImageMagick 可能是最常见的,但您也可以使用其他工具。 The animation
package 系统要求建议您可以将其与 GraphicsMagick
甚至 LyX
一起使用,或者您可以手动(或以编程方式,如果您可以滚动自己的 API)使用任意数量的 online tools。
【讨论】:
【参考方案2】:您没有提及您的操作系统,也没有提及您是指简单的单帧 GIF 还是动画 GIF。如果您只想要简单的 GIF,您可以使用 NetPBM 包,它比 ImageMagick 更轻且更易于安装。
因此,假设您有一个名为 input.png
的 PNG 文件,并且您想将其转换为名为 result.gif
的 GIF,您可以这样做:
pngtopam < input.png | pamtogif > result.gif
如果您想在 R 中执行此操作,则需要使用 system()
命令:
system("pngtopam < input.png | pamtogif > result.gif")
如您所见,NetPBM 将所有输入转换为其自己的、标准的、最小公分母 PAM 格式,然后再转换为所有已知的输出格式,因此在它支持 N 种格式,而不是 N^2 次转换——太棒了!
所以,对于 64 种格式:
64^2=4,096 (conversions to write)
而
2x64=128 (conversions to write)
【讨论】:
以上是关于有没有办法在不使用 ImageMagick 或其他第三方软件的情况下在 R 中制作 GIF?的主要内容,如果未能解决你的问题,请参考以下文章
ImageMagick:在不使用外部文本文件的情况下将选择性图像转换为多页 PDF?
imagemagick:根据r / g / b条件有选择地填充像素?
是否可以在不干扰服务器的情况下使用 Charles 代理或任何其他工具故意生成错误 500
有没有办法在不使用 /UNICODE 编译的情况下使用 MFC 的 CEdit 函数“ShowBalloonTip”?