48 lines
1.4 KiB
HTML
48 lines
1.4 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
|
<html>
|
|
<head>
|
|
<script src="../../resources/js-test-pre.js"></script>
|
|
</head>
|
|
<body>
|
|
<script>
|
|
description("Test canvas createImageData()");
|
|
|
|
ctx = document.createElement('canvas').getContext('2d');
|
|
|
|
shouldThrowErrorName("ctx.createImageData(null)", "TypeError");
|
|
|
|
// create a 100x50 imagedata and fill it with white pixels
|
|
|
|
imageData = ctx.createImageData(100, 50);
|
|
|
|
for (i = 0; i < imageData.data.length; ++i)
|
|
imageData.data[i] = 255;
|
|
|
|
shouldBe("imageData.width", "100");
|
|
shouldBe("imageData.height", "50");
|
|
shouldBe("imageData.data[32]", "255");
|
|
|
|
// createImageData(imageData) should create a new ImageData of the same size as 'imageData'
|
|
// but filled with transparent black
|
|
|
|
sameSizeImageData = ctx.createImageData(imageData);
|
|
shouldBe("sameSizeImageData.width", "100");
|
|
shouldBe("sameSizeImageData.height", "50");
|
|
shouldBe("sameSizeImageData.data[32]", "0");
|
|
|
|
// createImageData(width, height) takes the absolute magnitude of the size arguments
|
|
|
|
imgdata1 = ctx.createImageData(10, 20);
|
|
imgdata2 = ctx.createImageData(-10, 20);
|
|
imgdata3 = ctx.createImageData(10, -20);
|
|
imgdata4 = ctx.createImageData(-10, -20);
|
|
|
|
shouldBe("imgdata1.data.length", "800");
|
|
shouldBe("imgdata1.data.length", "imgdata2.data.length");
|
|
shouldBe("imgdata2.data.length", "imgdata3.data.length");
|
|
shouldBe("imgdata3.data.length", "imgdata4.data.length");
|
|
</script>
|
|
<script src="../../resources/js-test-post.js"></script>
|
|
</body>
|
|
</html>
|