blob: a70d3f1b4a681f428133e694fb2cfb83ab1cacbe [file] [log] [blame]
<html>
<head>
<script src="toDataURL-jpeg.js"></script>
<script>
if (window.testRunner)
testRunner.dumpAsText();
window.notifyEndTest = function ()
{
if (window.testRunner)
testRunner.notifyDone();
};
function testToDataURL(canvas, ctx)
{
ctx.fillStyle = '#00f';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#0ff';
ctx.fillRect(0, 3, 100, 1);
// Check for JPEG support first
var data = canvas.toDataURL('image/jpeg');
if (!data.match(/^data:image\/jpeg[;,]/)) {
_assert(true, "true");
} else {
var data_hi = canvas.toDataURL('image/jpeg', 0.99);
var data_lo = canvas.toDataURL('image/jpeg', 0.01);
ctx.fillStyle = '#f00';
ctx.fillRect(0, 0, 100, 50);
deferTest();
var img_hi = new Image();
img_hi.onload = function ()
{
var img_lo = new Image();
img_lo.onload = wrapFunction(function ()
{
ctx.drawImage(img_hi, 0, 0, 50, 50, 0, 0, 50, 50);
ctx.drawImage(img_lo, 0, 0, 50, 50, 50, 0, 50, 50);
_assert(data_hi.length > data_lo.length, "data_hi.length > data_lo.length");
_assertPixelApprox(canvas, 25,25, 0,0,255,255, "25,25", "0,0,255,255", 12);
_assertPixelApprox(canvas, 75,25, 0,0,255,255, "75,25", "0,0,255,255", 12);
});
img_lo.src = data_lo;
};
img_hi.src = data_hi;
if (window.testRunner)
testRunner.waitUntilDone();
}
}
_addTest(testToDataURL);
</script>
</head>
<body>
<p>To verify basic jpeg compressing loss: 1) Low qulity URL's length should be shorter than high qulity URL's length, 2) Compress loss should be in a tolerable range</p>
<canvas id="c" width="100" height="50"></canvas>
<p id="d"></p>
</body>
</html>