Rails,用rmagick从url读取图像

时间:2017-12-06 12:14:49

标签: ruby-on-rails url rmagick

我正在尝试使用Rmagick和carrierwave从url中读取图像。

require 'open-uri'
require 'rubygems'
require 'Rmagick'


image = Magick::ImageList.new  
urlimage = open("https://www.jewelinfo4u.com/images/Gallery/ruby.jpg") # Image Remote URL 
image.from_blob(urlimage.read)

puts '****************'
puts image
puts '****************'

但它给出了错误;

no decode delegate for this image format `JPEG' @ error/blob.c/BlobToImage/353

修改

我有图片模型,我选择mount_uploader为:image;

class Picture < ActiveRecord::Base
  belongs_to :car
  mount_uploader :image, ImageUploader
end

这是image_uploader.rb,可以在保存到S3 Amazon之前编辑图像。

# encoding: utf-8
#require File.join(Rails.root, "lib", "carrier_wave", "delayed_job") # Upload pics with delayed job
class ImageUploader < CarrierWave::Uploader::Base
#include CarrierWave::Delayed::Job # Upload pics with delayed job


  include CarrierWave::RMagick


  storage :fog
  include CarrierWave::MimeTypes
  process :set_content_type


  def store_dir
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
  end


  version :slider do
    process :adjust_image
    process :optimize
  end

....     端

1 个答案:

答案 0 :(得分:1)

如果你使用的是carrierwave,你应该尝试这样 -

所以,让我们说,你有图像模型(类)

image = Image.new
image.remote_image_url = "https://www.jewelinfo4u.com/images/Gallery/ruby.jpg"
image.save

它将从URL下载图像并相应存储。

以下是Github网址(仅供参考) - https://github.com/carrierwaveuploader/carrierwave/wiki/How-to:-Upload-remote-image-urls-to-your-seedfile