I am hoping someone can help me understand this. I have a base64 string for an image:
\"data:image/jpeg;base64,/9j/4AAQSkZJRgABA...\"
I would
And yes that string does need to be broken up:
var data = newImage.split(',');
this.get('store').createRecord(Emb.Painting, {name: newName, image: data[1]});
I doubt this is the best way...
Yes, you need to split the string. You could use something like this:
def splitBase64(uri)
if uri.match(%r{^data:(.*?);(.*?),(.*)$})
return {
type: $1, # "image/png"
encoder: $2, # "base64"
data: $3, # data string
extension: $1.split('/')[1] # "png"
}
end
end
Then you can decode the image...
base64image = params[:painting][:image]
imageDataString = splitBase64(base64image)[:data]
imageDataBinary = Base64.decode64(imageDataString)
Then you can pass the imageDataBinary to StringIO.new() and the resulting image should be valid.