我有一些非常基本的代码,可以从文件夹中读取文件并使用magick软件包制作gif。它产生了gif,但是我不知道如何使注释(image_annotate)动态化。例如,我不想成为每个图像的“ CAIDD_A”,而是希望每个图像的年份都更新为“ CAIDD_A_YYYY”。
library(dplyr)
library(purrr)
library(magick)
library(animation)
chennai_gif <- list.files(path="CAIDD_A",pattern = "*.tif", full.names = T) %>%
map(image_read) %>%
image_join() %>%
image_annotate("CAIDD", location =geometry_point(500,400), size = 42, color = "black") %>%
image_animate(fps=2, loop=10) %>%
image_write("CAIDD_A.gif")
我试图为注释创建字符向量,但出现以下错误:
Error in magick_image_annotate(image, text, gravity, location, degrees, :
Expecting a single string value: [type=character; extent=43].
此代码有效,但是它只是将整个字符串注释到图像上...
Title =seq(2018,2060,by=1)
Title = toString(Title)
chennai_gif <- list.files(path="CAIDD_A",pattern = "*.tif", full.names = T) %>%
map(image_read) %>%
image_join() %>%
image_annotate(text=Title, location =geometry_point(500,400), size = 42, color = "black") %>%
image_animate(fps=2, loop=10) %>%
image_write("CAIDD_A.gif")
library(stringr)
year <- str_extract(Sys.Date(), "\\d{4}")
chennai_gif <- list.files(path="CAIDD_A",pattern = "*.tif", full.names = T) %>%
map(image_read) %>%
image_join() %>%
image_annotate("CAIDD", location =geometry_point(500,400), size = 42, color = "black") %>%
image_animate(fps=2, loop=10) %>%
image_write(str_c("CAIDD_A.gif", year))