Ich möchte Bild in eine Datei mit rmagick schreiben. Da unten ist mein CodeSchreiben von Bilddaten in Datei in Ruby mit rmagick
im = "base64encodedstring"
image = Magick::Image.from_blob(Base64.decode64(im)
image[0].format = "jpeg"
name ="something_temp"
path = "/somepath/" + name
File.open(path, "wb") { |f|
f.write(image[0])
}
Ich habe auch versucht f.write(image)
zu verwenden. Aber was in der Datei geschrieben wird, ist #<Magick::Image:0x7eff0587f838>
. Was ist der Grund dafür?
Neben Marek-Antwort, die * Grund *, warum Sie die Zeichenfolge in der Datei erhalten, weil Sie 'File.write' genannt haben, die eine' String' erwartet - es wandelt das angegebene Objekt in einen String um (ich denke, dies ist über '.to_s') und kann nicht verwendet werden, um andere Objektdaten als" String "-Typen zuverlässig zu speichern. Es gibt viele Möglichkeiten, binäre Daten zu speichern - im Fall von 'RMagick' besteht eine Möglichkeit darin, die bereitgestellten' read'- und 'write'-Methoden zu verwenden. –