зеркало из https://github.com/mozilla/gecko-dev.git
107 строки
2.5 KiB
JavaScript
107 строки
2.5 KiB
JavaScript
var RGBAValues = [
|
|
[42, 142, 23, 148],
|
|
[234, 165, 177, 91],
|
|
[74, 228, 75, 195],
|
|
[140, 108, 73, 65],
|
|
[25, 177, 3, 201],
|
|
[127, 104, 12, 199],
|
|
[196, 93, 240, 131],
|
|
[250, 121, 231, 189],
|
|
[175, 131, 215, 190],
|
|
[145, 122, 166, 70],
|
|
[18, 196, 210, 162],
|
|
[225, 1, 90, 188],
|
|
[223, 216, 182, 233],
|
|
[115, 48, 168, 56],
|
|
[50, 206, 198, 199],
|
|
[152, 28, 70, 130],
|
|
[176, 134, 133, 51],
|
|
[148, 46, 43, 144],
|
|
[78, 171, 141, 95],
|
|
[24, 177, 102, 110],
|
|
[0, 27, 127, 91],
|
|
[31, 221, 41, 170],
|
|
[85, 7, 218, 146],
|
|
[65, 30, 198, 238],
|
|
[121, 56, 123, 88],
|
|
[246, 39, 140, 146],
|
|
[174, 195, 254, 149],
|
|
[29, 153, 92, 116],
|
|
[17, 240, 5, 111],
|
|
[38, 162, 84, 143],
|
|
[237, 159, 201, 244],
|
|
[93, 68, 14, 246],
|
|
[143, 142, 82, 221],
|
|
[187, 215, 243, 154],
|
|
[24, 121, 220, 53],
|
|
[80, 153, 151, 219],
|
|
[202, 241, 250, 191],
|
|
];
|
|
|
|
function createOneTest(rgbaValue) {
|
|
return new Promise(function (resolve, reject) {
|
|
var tolerance = 5;
|
|
var r = rgbaValue[0];
|
|
var g = rgbaValue[1];
|
|
var b = rgbaValue[2];
|
|
var a = rgbaValue[3];
|
|
var imageData = new ImageData(new Uint8ClampedArray([r, g, b, a]), 1, 1);
|
|
|
|
var newImageData;
|
|
createImageBitmap(imageData).then(
|
|
function (imageBitmap) {
|
|
var context = document.createElement("canvas").getContext("2d");
|
|
context.drawImage(imageBitmap, 0, 0);
|
|
newImageData = context.getImageData(0, 0, 1, 1);
|
|
var newR = newImageData.data[0];
|
|
var newG = newImageData.data[1];
|
|
var newB = newImageData.data[2];
|
|
var newA = newImageData.data[3];
|
|
var isTheSame =
|
|
Math.abs(r - newR) <= tolerance &&
|
|
Math.abs(g - newG) <= tolerance &&
|
|
Math.abs(b - newB) <= tolerance &&
|
|
Math.abs(a - newA) <= tolerance;
|
|
ok(
|
|
isTheSame,
|
|
"newImageData(" +
|
|
newR +
|
|
"," +
|
|
newG +
|
|
"," +
|
|
newB +
|
|
"," +
|
|
newA +
|
|
") should equal to imageData(" +
|
|
r +
|
|
"," +
|
|
g +
|
|
"," +
|
|
b +
|
|
"," +
|
|
a +
|
|
")." +
|
|
"Premultiplied Alpha is handled while creating ImageBitmap from ImageData."
|
|
);
|
|
if (isTheSame) {
|
|
resolve();
|
|
} else {
|
|
reject();
|
|
}
|
|
},
|
|
function () {
|
|
reject();
|
|
}
|
|
);
|
|
});
|
|
}
|
|
|
|
function testBug1239752() {
|
|
var tests = [];
|
|
for (var i = 0; i < RGBAValues.length; ++i) {
|
|
tests.push(createOneTest(RGBAValues[i]));
|
|
}
|
|
|
|
return Promise.all(tests);
|
|
}
|