はい、そうする方法があります。
入力文字列の"data:image/jpeg;base64,"
をストリップし、Base64.decode64
メソッドでデコードします。バイナリBLOBを取得します。そのブロブをMiniMagick::Image.read
に送ります。 ImageMagickはあなたのためにすべてのメタデータを推測するのに十分スマートです。その後、通常どおりmini_magick
の方法で画像を処理します。
require 'base64'
uploaded_io = "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2....."
metadata = "data:image/jpeg;base64,"
base64_string = uploaded_io[metadata.size..-1]
blob = Base64.decode64(base64_string)
image = MiniMagick::Image.read(blob)
image.write 'image.jpeg'
# Retrieve attributes
image.type # "JPEG"
image.mime_type # "image/jpeg"
image.size # 458763
image.width # 640
image.height # 480
image.dimensions # [640, 480]
# Save in other format
image.format 'png'
image.write 'image.png'
あなたはそれを解決しましたか? – Defoncesko