我正在尝试使用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
.... 端
答案 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