RMagick nicht Lesen können remote-Bild
Mein env ist Linux centos, und verwenden Sie ruby 1.8.7, und der code ist hier unten:
require 'rubygems'
require 'RMagick'
Magick::Image.read("http://image.domain.com/image.darenhui.com/images/random_bg/01.jpg")[0]
wirft es eine Fehlermeldung wie unten:
in `read': no decode delegate for this image format `//image.domain.com/images/random_bg/01.jpg' @ error/constitute.c/ReadImage/532 (Magick::ImageMagickError),
aber wenn ich lese, von lokalen wie:
require 'rubygems'
require 'RMagick'
Magick::Image.read("/local/staticimages/random_bg/01.jpg")[0]
alles ok ist.
Ich Laufe identifizieren -list-format und siehe unten:
JPEG* JPEG rw- Joint Photographic Experts Group JFIF format (62)
JPG* JPEG rw- Joint Photographic Experts Group JFIF format (62)
aber wenn ich test von Identität "http://image.domain.com/image.darenhui.com/images/random_bg/01.jpg" zu scheitern, aber der Erfolg für "/local/staticimages/random_bg/01.jpg"
Kann mir jemand irgendeinen Anhaltspunkt? vielen Dank im Voraus.
- was passiert, wenn man copy&paste die URL und leiten Sie es zu wget ?
- danke für Eure Antworten, ich habe versucht wget image.domain.com/images/random_bg/06.jpg, es ist ok.
- siehe meine Antwort unten...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Soweit ich sehen kann
Magick::Image.read
unterstützt NICHT die URLs, nur die Dateien/Datei-handles - siehe http://www.imagemagick.org/RMagick/doc/image1.html#read, wo es heißt, dass esUmgesetzt wird es durch die C-Funktion
ReadImage
die nicht-support - URLs finden Sie in der ImageMagick-Quelle in Zeile 394 hier.WENN Sie möchten, öffnen Sie ein Bild aus einer URL, die Sie herunterladen müssen, das Bild irgendwie zu einer Datei oder einem stream... dann kann man füttern, dass die Datei oder der stream zu
Magick...
Magick::Image.read
unterstützt keine URL-links. Aber Lesen Sie das remote-image mit rubyopen
Methode:Schneller Vorlauf bis Mai 2014, und ich bin in der Lage, nur...
Und es funktioniert einfach. Fühlt sich gut an.
(Getestet auf ImageMagick 6.8.8-9 Q16)
EDIT: scheint nicht zu arbeiten auf Heroku Cedar stack (ImageMagick 6.5.7-8 2012-08-17 Q16) obwohl. :/
Können Sie eine Datei Lesen aus einer url mit
open-uri
, dann füttern, die in Rmagick istImage::from_blob
.Beispiel:
Beachten Sie, dass sollten Sie darüber hinaus kümmern sich um die Behandlung von Ausnahmen, die sich aus der
open
HTTP-request. Sprich, was passiert wenn man eine 404 oder eine nicht-Bild-Antwort?