2016-12-27 36 views
2

我一直在试图从生成并保存在R中的图产生GIF。对于使用当前系统的我们已经使用ImageMagick带来了极大的不便。 R还有其他可以创建GIF的方式或包吗?我研究了堆栈溢出,并且只发现了涉及ImageMagick的响应。有没有办法在R中使用ImageMagick或其他第三方软件制作GIF?

+1

如果有帮助,PNG图像文件是一个类似的形式,并与所述'png'功能基础R可用。 – lmo

+0

我已经使用png作为将变成gif的情节的保存格式。你知道有什么方法可以轻松地将它们转换成gif吗? – PhysicsFreak

+0

这是一个不错的[超级用户发布](http://superuser.com/questions/71028/batch-converting-png-to-jpg-in-linux)将imagengg转换为jpeg的png。我想在任何代码行中用gif替换jpeg都会起到诀窍的作用。 – lmo

回答

1

没有R的内置方式可以制作gif(据我所知),它不依赖外部库将保存为单帧的图像转换为gif。

对于该转换ImageMagick可能是最常见的,但也有其他工具可以使用。 The animation package系统要求建议您可以选择使用GraphicsMagick甚至LyX,或者您可以使用任意数量的online tools手动(或以编程方式编辑,如果您可以推出自己的API)。

0

你没有提到你的操作系统,也没有提到你的意思是简单的单帧GIF或动画GIF。如果你只是想要简单的GIF,你可以使用NetPBM包装,它的重量更轻,并且比ImageMagick更容易安装。

所以,假设你有一个PNG文件名为input.png,你想把它转换成GIF叫result.gif,你可以这样做:

pngtopam < input.png | pamtogif > result.gif 

如果你想要做的,从内部R,你需要使用system()命令:

system("pngtopam < input.png | pamtogif > result.gif") 

正如你很可能会看到,的NetPBM将所有输入转换为它自己的标准最低公分母PAM格式,并从那里转换到所有已知的输出格式,因此在它支持的N个格式之间只需要2N个转换,而不是N^2个转换 - 甜!

所以,对于64种格式:

64^2=4,096 (conversions to write) 

2x64=128  (conversions to write) 
相关问题