添加背景到包含不同大小的图像的GIF(R magick)

时间:2017-12-11 16:30:25

标签: r imagemagick rmagick

我想在gif中添加图像背景,其中包含不同大小的图像,如美丽的圣诞球。

enter image description here

这是我试过的代码:

  #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")

这是可怕的结果!!

enter image description here

问题是,球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

我没有找到如何解决这个问题...:如果你能在圣诞节前帮助我,那就太棒了!

谢谢!

1 个答案:

答案 0 :(得分:1)

您的问题可能是您需要合并框架以将它们填充到相同的大小。然后再次优化它们。在ImageMagick中,我会这样做:

convert ornament.gif -coalesce -background red -alpha background -alpha off -layers optimize ornament2.gif

enter image description here

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中的等效命令。但他们可能有相似的名字。希望这会让你指出正确的方向。