title: Error manipulating a remote image using node-canvas: "Image given has not completed loading"
body: <p>I'm trying to use node-canvas to manipulate an image stored on a remote server. I started with the image-src example and modified it, but I can't get it to work. Here's my code:</p>
  
  <pre><code>var fs = require('fs'),
      http = require('http'),
  url = require('url'),
  canvas = require('./node-canvas/lib/canvas');
  
  var outCanvas = new canvas(1000, 750);
  var ctx = outCanvas.getContext('2d');
  
  http.get(
      {
          host: 'farm8.staticflickr.com',
          port: 80,
          path: '/7108/7038906747_69a526f070_z.jpg'
      },
      function(res) {
          var data = '';
          res.on('data', function(chunk) {
              data += chunk;
          });
          res.on('end', function () {
              img = new canvas.Image;
              img.src = data;
              ctx.drawImage(img, 0, 0, img.width, img.height);
  
              var out = fs.createWriteStream(__dirname + '/my-out.png')
                  , stream = outCanvas.createPNGStream();
  
              stream.on('data', function(chunk){
                  out.write(chunk);
              });
          });
      }
  );
  </code></pre>
  
  <p>...and here's the error I'm getting:</p>
  
  <pre><code>/Users/daf/Documents/lolstagram/lolstagram-c.js:23
      ctx.drawImage(img, 0, 0, img.width, img.height);
         ^
  Error: Image given has not completed loading
      at IncomingMessage.&lt;anonymous&gt; (/Users/daf/Documents/lolstagram/lolstagram-c.js:23:8)
      at IncomingMessage.emit (events.js:88:20)
      at HTTPParser.onMessageComplete (http.js:137:23)
      at Socket.ondata (http.js:1150:24)
      at TCP.onread (net.js:374:27)
  </code></pre>
  
  <p>Any idea what the problem might be? Thanks.</p>