【问题标题】:Create fade-in and fade-out gif in R magick package在 R magick 包中创建淡入淡出 gif
【发布时间】:2021-04-10 19:03:44
【问题描述】:

我一直在尝试使用 magick 包在 R 中创建淡入和淡出 gif 的方法,但无法在文档中或在线找到任何帮助。

使用下面的代码,我可以从第一张图片“淡出”到第二张。但不是循环跳回到序列的开头,我希望它反向淡入。

这是从第一张图片淡出到第二张图片的代码。我必须添加什么然后向后淡入才能回到开头?

library(magick)
newlogo <- image_scale(image_read("https://jeroen.github.io/images/Rlogo.png"))
oldlogo <- image_scale(image_read("https://jeroen.github.io/images/Rlogo-old.png"))
my_gif <-  image_resize(c(oldlogo, newlogo), '200x150!') %>%
  image_background('white') %>%
  image_morph(10) %>%
  image_animate(fps=5, optimize = TRUE) %>%
  image_browse(my_gif)

来自 imagemagick 网站的This answer 帮助我找到了解决方案。只需将第一个图像附加到末尾即可总共有三个图像,而不是两个。这是有效的代码:

library(magick)
newlogo <- image_scale(image_read("https://jeroen.github.io/images/Rlogo.png"))
oldlogo <- image_scale(image_read("https://jeroen.github.io/images/Rlogo-old.png"))
my_gif <-  image_resize(c(oldlogo, newlogo, oldlogo), '200x150!') %>%
  image_background('white') %>%
  image_morph(10) %>%
  image_animate(fps=5, optimize = TRUE) %>%
  image_browse(my_gif)

【问题讨论】:

  • 您能否在 image_animate 之前停止,将其保存为 tmp 对象,然后将整个结果输入到原始代码中通常包含 oldlogo 的位置?
  • 稍后我会尝试您的建议,但我从这里找到了解决方案。您只需将原始图像添加到图像的末尾,如下所示: image_resize(c(oldlogo, newlogo, oldlogo), '200x150!')
  • 酷。这听起来更简单。顺便说一句,您可以在下面回答您自己的问题。它也为您提供了更多想象中的互联网点。

标签: r gif


【解决方案1】:

我从 imagemagick 帮助页面找到了一个解决方案。您只需将初始图像附加到末尾即可获得三个图像--1st--2nd--1st。这样看起来 gif 就会“淡入”和“淡出”。

代码如下:

library(magick)
newlogo <- image_scale(image_read("https://jeroen.github.io/images/Rlogo.png"))
oldlogo <- image_scale(image_read("https://jeroen.github.io/images/Rlogo-old.png"))
my_gif <-  image_resize(c(oldlogo, newlogo, oldlogo), '200x150!') %>%
  image_background('white') %>%
  image_morph(10) %>%
  image_animate(fps=5, optimize = TRUE) %>%
  image_browse(my_gif)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-20
    • 1970-01-01
    相关资源
    最近更新 更多