send_file but not send_data?

So this is the original code I used, and it worked

send_file 'vendor/sprites/not-found.png', {:filename => "sprite-not-found.png", :type => "image/png", :disposition => "inline"}

Now I switched it to this (going to be adding imageMagick)

send_data File.read('vendor/sprites/not-found.png'), {:filename => "soldier-not-found.png", :type => "image/png", :disposition => "inline"}

But now instead of seeing my image I see the good 'ol broken image. I assume this is because an image is binary but File.read() uses String. How would I go about loading an image into RAM and serve it?

Also would it just be better for me to make the image, cache it, then use send_file to it instead of send_data?

a String in ruby is just a collection of bytes - there isn't a separate binary type. If you're on windows you might need to open the file in binary mode

Fred

Yes I am on Windows, haven't felt a need to get onto Ubuntu yet. So I was able to get it working now! Can anyone recommend libraries for pasting together multipliable images? e.g. I have body, arms, legs, etc images and want to put them all ontop of each other. I do not believe that I need to move them. (I've heard rMagick but it's not too windows friendly, hoping to find something else that's pure ruby)