我想在gif中添加图像背景,其中包含不同大小的图像,如美丽的圣诞球。
这是我试过的代码:
#install.packages("magick")
library(magick)
setwd("C:/Users/...")
christmas <- image_read('christmas.gif')
background <- image_blank(250, 250, color = "red")
frames <- image_composite(background, christmas, offset = "+0+0")
animation <- image_animate(frames, fps = 5)
image_write(animation, "output.gif", format="gif")
这是可怕的结果!!
问题是,球gif的3个图像的大小不同,因此在添加背景图像时图像会移动。
> christmas
format width height colorspace matte filesize
1 GIF 216 249 sRGB TRUE 47656
2 GIF 202 233 sRGB TRUE 47656
3 GIF 200 214 sRGB TRUE 47656
我没有找到如何解决这个问题...:如果你能在圣诞节前帮助我,那就太棒了!
谢谢!
答案 0 :(得分:1)
您的问题可能是您需要合并框架以将它们填充到相同的大小。然后再次优化它们。在ImageMagick中,我会这样做:
convert ornament.gif -coalesce -background red -alpha background -alpha off -layers optimize ornament2.gif
见
http://www.imagemagick.org/script/command-line-options.php#coalesce http://www.imagemagick.org/Usage/masking/#alpha http://www.imagemagick.org/Usage/anim_opt/#optimize
抱歉,我不知道RMagick中的等效命令。但他们可能有相似的名字。希望这会让你指出正确的方向。