用Magick制成的R Gif的动态注释文本

问题描述 投票:0回答:1

我有一些非常基本的代码,可以从文件夹中读取文件并使用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") 
r annotations imagemagick gif
1个回答
-1
投票
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))
© www.soinside.com 2019 - 2024. All rights reserved.