为了使用 magick 包创建 .gif,我如何一次读取多个图像?
我在列表对象中成功导入它们,但从 image_animate()
收到错误.
# read all files in folder (only .png files)
capturas <- list.files("./path/to/images/")
# get all images in a list
images <- vector()
for (i in seq_along(capturas)) {
images[i] <- list(image_read(str_c("./path/to/images/", capturas[i])))}
image_animate(image_scale(images, "500x500"), fps = 1, dispose = "previous")
得到以下错误:
> image_animate(image_scale(images, "500x500"), fps = 2, dispose = "previous")
Error: The 'image' argument is not a magick image object.
使用时
image_read
在每个图像上分别工作正常...
img_1 <- image_read(str_c("./path/to/images/", capturas[1]))
img_2 <- image_read(str_c("./path/to/images/", capturas[2]))
img_3 <- image_read(str_c("./path/to/images/", capturas[3]))
img <- c(img_1, img_2, img_3)
img <- image_scale(img, "300x300")
请您参考如下方法:
您可以使用 image_join
从magick 包中创建可以在image_animate
中使用的多帧图像命令。我用了 purrr
包而不是循环。
library(purrr)
library(magick)
capturas <- list.files("./path/to/images/", pattern = "\\.png$")
# get all images in a list
images <- map(capturas, image_read)
images <- image_join(images)
image_animate(images, fps = 1, dispose = "previous")