将多个png转换为gif作为R中的动画

Posted

技术标签:

【中文标题】将多个png转换为gif作为R中的动画【英文标题】:Convert multiple png to gif as an animation in R 【发布时间】:2019-10-16 18:31:45 【问题描述】:

我在一个目录中有一堆 png 文件,我想通过 R 将它们转换为 gif(动画)文件。你能告诉我怎么做吗?

【问题讨论】:

【参考方案1】:

这里有一些你可以使用的虚拟代码:

首先使用magick GIF 包 将magrittr 包或dplyr 包用于%>%

library(magick)
library(magrittr)

然后列出目录下的文件,并合并成gif fps 是每秒帧数

list.files(path='/$PATH/', pattern = '*.png', full.names = TRUE) %>% 
        image_read() %>% # reads each path file
        image_join() %>% # joins image
        image_animate(fps=4) %>% # animates, can opt for number of loops
        image_write("FileName.gif") # write to current dir

【讨论】:

【参考方案2】:

gifski 包的解决方案:

library(gifski)
png_files <- list.files("path/to/your/pngs/", pattern = ".*png$", full.names = TRUE)
gifski(png_files, gif_file = "animation.gif", width = 800, height = 600, delay = 1)

gifski的优势在于GIF中的颜色数量不限于256种。

【讨论】:

几百帧,我发现gifskimagick快很多。

以上是关于将多个png转换为gif作为R中的动画的主要内容,如果未能解决你的问题,请参考以下文章

Android 将 gif 转换为动画 webp

有没有办法将图像文件夹(png、gif)转换为 Python 中的数组列表?

将精灵表转换为 gif 动画

如何使用 PHP 冻结动画 gifs/转换为 jpg?

使用 ImageMagick 将 gif 转换为 png 时出现“转换:不正确的图像标题”错误

将每个动画 GIF 帧转换为单独的 BufferedImage