<canvas id="mycanvas"></canvas>
<img id="result" onload="testDone()">
<script type = 'text/javascript'>
if (window.testRunner)
    testRunner.waitUntilDone();

function testDone()
{
    if (window.testRunner)
        testRunner.notifyDone();
}

var image = new Image();
image.onload = function() {
        var canvas = document.getElementById("mycanvas");
        canvas.width = image.width;
        canvas.height = image.height;
        var ctx = canvas.getContext('2d');
        ctx.drawImage(image, 0, 0);

        canvas.toBlob(function(blob) {
            url = URL.createObjectURL(blob);
            result.src = url;
        }, "image/jpeg", 1.0);
}
image.src = "resources/letters.png";
</script>
