加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 使用carrierwave获取gif中的第一张图像

发布时间:2020-12-16 23:19:02 所属栏目:百科 来源:网络整理
导读:我使用载波上传gifs工作正常,问题出现当我尝试生成拇指版本并将gif转换为jpeg只有gif中的第一个图像作为拇指,我得到一个错误: LocalJumpError in ImagesController#createno block given (yield)app/controllers/images_controller.rb:21:in `new'app/contr
我使用载波上传gifs工作正常,问题出现当我尝试生成拇指版本并将gif转换为jpeg只有gif中的第一个图像作为拇指,我得到一个错误:
LocalJumpError in ImagesController#create

no block given (yield)

app/controllers/images_controller.rb:21:in `new'
app/controllers/images_controller.rb:21:in `create'

请求

参数:

{"utf8"=>"?","authenticity_token"=>"lPEjP1WtPxFdizL2/FAWGHzOZPtecb5nKzKO8dg5ZdE=","image"=>{"image"=>#<ActionDispatch::Http::UploadedFile:0x007ff5d4cdc720 @original_filename="some-file-name.gif",@content_type="image/gif",@headers="Content-Disposition: form-data; name="image[image]"; filename="some-file-name.gif"rnContent-Type: image/gifrn",@tempfile=#<File:/var/folders/c8/1t7w8nln4b3bvs4_nv2cyn2m0000gt/T/RackMultipart20120326-5101-gcyvk0>>,"remote_image_url"=>"","title"=>"The red panda","nsw"=>"0"},"commit"=>"Roll GIF"}

这是我用来生成拇指的代码:

version :thumb do
    process :resize_to_limit => [200,200]
    process :convert => 'jpg'
end

希望你们能提前帮助和感谢.

解决方法

要使用carrierwave从gif图像中删除动画,您可以定义以下处理器:
def remove_animation
  manipulate! do |img,index|
    index == 0 ? img : nil
  end
end

所以,拇指版的代码将是:

version :thumb do
  process :remove_animation
  process :resize_to_limit => [200,200]
  process :convert => 'jpg'
end

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读