trouble using send_data to stream image to browser


I'm doing some server-side graphics with Java2D and I'm trying to
stream the resulting image to the browser using send_data. When I try
to view the image that I streamed, the browser just shows the URL in
the window as a very small image (about .4 kb) when I am using jpeg
format. For png, it tells me that the image has errors and can't load

Here's what I'm doing in the controller:

def sendImage
        biFiltered =, 100, BI::TYPE_INT_RGB)
        big = biFiltered.createGraphics()
        $w = 0
        $h = 0
        filename = "#{RAILS_ROOT}/public/images/kids.jpg"
        imagefile =
        bi =
w = bi.getWidth(nil);
                h = bi.getHeight(nil);
        $stderr.print "after getting size"
                if bi.getType != BI.TYPE_INT_RGB
                        bi2 =, h, BI::TYPE_INT_RGB)
$stderr.print "before get graphics"
                        big = bi2.createGraphics()
                        $stderr.print "after getting graphics"
                        big.drawImage(biFiltered, 0, 0, nil)
                        bi = b2
                        biFiltered = bi
                $stderr.print "Couldn't load file"
# big.drawImage(biFiltered, 0, 0, w, h, w/0.7, w/0.7, nil)
java.awt.geom.AffineTransform.getScaleInstance(2, 2), nil)
        os =
                isWritten = javax.imageio.ImageIO.write(biFiltered,
"jpeg", os)
                $stderr.print "Couldn't write file"

        if isWritten
#send_data , :type => "image/jpeg", :disposition =>
"inline", :filename => newkids.jpg

           send_data "os.toByteArray", :type => "image/
jpeg", :disposition => "inline", :filename => "scaledkids.jpg"