纸夹(Paperclip)保留了动态GIF图像 - 如何告诉它停止这样做?

4

那我不想生成动态缩略图。有没有一种简单的方法向Paperclip解释这个问题?

更新。

当然,有一种将动画转换为jpeg的选项。但对我而言,这会导致非常低效的ImageMagic命令(看起来需要处理每一帧以生成最终的平面图像)。对于大型gif,尤其是令人沮丧且耗时。

此外,当我只需要提取第一帧时,将gif转换为另一种格式就感觉不对了。毕竟,我不想切换格式。

正如@faron在下面评论中所说,ImageMagic具有选择序列中帧的特殊语法:convert animation.gif[0] frame0.gif。我真正想找到的是一种指示Paperclip使用此语法的方法。


保存缩略图时,使用 :format => :jpg 是一个选项吗? - Stefan
也许你可以在这里发布问题:https://github.com/thoughtbot/paperclip/issues。如果这不是你想要的,请继续寻找。 - sawa
如果您正在使用 ImageMagick,您可以通过类似于 convert animation.gif[0] frame0.gif 的方式添加自定义处理(请参见 imagemagick 论坛中的帖子)。 - faron
@Stefan,我更新了问题的解释,说明为什么我不喜欢转换到另一种格式。 - Alexis
@faron,你是对的,但我想要使用Paperclip来实现这个。 - Alexis
1个回答

2

好的,我提出了一个问题,收到了负评,现在我发布了一个回答——感觉有点奇怪,但无所谓 :)

解决方案其实很简单。可以向Paperclip::Thumbnail处理器传递一个animated选项。如果animated选项设置为false,则Paperclip会知道你只想要一张动画中的第一帧图片。例如:

has_attached_file :pic,
  styles: {
    large: { geometry: "700>", animated: false },
    thumb: { geometry: "280>", animated: false },
  }, 
  ...

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接