1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
|
<html>
<head>
<style>
img { display: block; border-style: groove}
</style>
<script>
function testImageData() {
var obj = myWidget.image;
var pxm = myWidget.pixmap;
function compareImageDataSize(o, imageData) {
myWidget.compare(imageData.height, o.height);
myWidget.compare(imageData.width, o.width);
}
compareImageDataSize(obj, obj.toImageData());
compareImageDataSize(pxm, pxm.toImageData());
function compareImageDataPixel(o, imageData) {
compareImageDataSize(o, imageData);
// Make sure pixels are 0xAABBCCFF
var data = imageData.data;
for (var i = 0; i < data.length; i += 4) {
myWidget.compare(data[i], 0xaa); // R
myWidget.compare(data[i+1], 0xbb); // G
myWidget.compare(data[i+2], 0xcc); // B
myWidget.compare(data[i+3], 0xff); // A
}
}
var objARGB32 = myWidget.abcImage(5);
compareImageDataPixel(objARGB32, objARGB32.toImageData());
var objRGB32 = myWidget.abcImage(4);
compareImageDataPixel(objRGB32, objRGB32.toImageData());
var objRGB888 = myWidget.abcImage(13);
compareImageDataPixel(objRGB888, objRGB888.toImageData());
var objRGB444 = myWidget.abcImage(14);
compareImageDataPixel(objRGB444, objRGB444.toImageData());
}
function startTest()
{
testImageData();
var obj = myWidget.image;
var pxm = myWidget.pixmap;
var img = new Image;
obj.assignToHTMLImageElement(img);
var img1 = document.getElementById("img1");
var img2 = document.getElementById("img2");
var img3 = document.getElementById("img3");
var img4 = document.getElementById("img4");
document.body.appendChild(img);
obj.assignToHTMLImageElement(img3);
pxm.assignToHTMLImageElement(img4);
myWidget.compare(pxm.width, img4.width);
myWidget.compare(obj.width, img3.width);
var signalsFired = 0;
myWidget.compare(obj.toString(),"[Qt Native Pixmap "+obj.width+","+obj.height+"]");
myWidget.compare(String(pxm),"[Qt Native Pixmap "+pxm.width+","+pxm.height+"]");
// this shouldn't work but shouldn't crash
myWidget.randomSlot("foobar");
myWidget.pixmapSignal.connect(function(imgFromSignal) {
myWidget.compare(imgFromSignal.height, img2.height);
if (++signalsFired == 2)
myWidget.completeTest();
});
myWidget.imageSignal.connect(function(imgFromSignal) {
myWidget.compare(pxm.height, img2.height);
if (++signalsFired == 2)
myWidget.completeTest();
});
function continueTestAfterImagesAreLoaded()
{
if (img1.complete && img2.complete) {
myWidget.compare(pxm.height, img2.height);
myWidget.pixmapSlot(img);
myWidget.imageSlot(pxm);
}
}
img1.onload = continueTestAfterImagesAreLoaded;
img2.onload = continueTestAfterImagesAreLoaded;
img1.src = obj.toDataUrl();
img2.src = myWidget.pixmap.toDataUrl();
myWidget.image = pxm;
myWidget.pixmap = img;
}
</script>
</head>
<body onload="startTest()">
<img id="img1" />
<img id="img2" />
<img id="img3" />
<img id="img4" />
</body>
</html>
|