bca7fa64a82b0a809664c2318a80e915aa964b8f
[jalviewjs.git] / site / j2s / swingjs / JSImage.js
1 Clazz.declarePackage ("swingjs");\r
2 Clazz.load (["java.awt.image.BufferedImage"], "swingjs.JSImage", ["JU.Base64", "swingjs.api.DOMNode"], function () {\r
3 c$ = Clazz.decorateAsClass (function () {\r
4 this.typeRequested = 0;\r
5 this.pix = null;\r
6 this._imgNode = null;\r
7 this.width = 0;\r
8 this.height = 0;\r
9 Clazz.instantialize (this, arguments);\r
10 }, swingjs, "JSImage", java.awt.image.BufferedImage);\r
11 Clazz.makeConstructor (c$, \r
12 function (argb, width, height) {\r
13 Clazz.superConstructor (this, swingjs.JSImage, [width, height, 2]);\r
14 this.width = width\r
15 this.height = height\r
16 \r
17 this.pix = argb;\r
18 }, "~A,~N,~N");\r
19 Clazz.defineMethod (c$, "toIntARGB", \r
20 function (imgData) {\r
21 var n = Clazz.doubleToInt (imgData.length / 4);\r
22 var iData =  Clazz.newIntArray (n, 0);\r
23 for (var i = 0, j = 0; i < n; j++) iData[i++] = (imgData[j++] << 16) | (imgData[j++] << 8) | imgData[j++] | 0xFF000000;\r
24 \r
25 return iData;\r
26 }, "~A");\r
27 Clazz.defineMethod (c$, "getDOMImage", \r
28 function (b, type) {\r
29 var dataurl = "data:image/" + type + ";base64," + JU.Base64.getBase64 (b).toString ();\r
30 var me = this;\r
31 var img = null;\r
32 {\r
33 img = new Image(this.width, this.height);\r
34 //img.onLoad = function() { me.setDOMImage(img); };\r
35 img.src = dataurl;\r
36 }this.setDOMImage (img);\r
37 }, "~A,~S");\r
38 Clazz.defineMethod (c$, "setDOMImage", \r
39 function (img) {\r
40 var canvas = swingjs.api.DOMNode.createElement ("canvas", "JSImage");\r
41 var w = this.width;\r
42 var h = this.height;\r
43 this._imgNode = img;\r
44 {\r
45 canvas.width = w;\r
46 canvas.height = h;\r
47 var ctx = canvas.getContext("2d");\r
48 ctx.drawImage(img, 0, 0, w, h);\r
49 var data = ctx.getImageData(0, 0, w, h).data;\r
50 img._pbuf32 = this.toIntARGB(data);\r
51 }}, "swingjs.api.DOMNode");\r
52 Clazz.defineMethod (c$, "getHeight", \r
53 function (o) {\r
54 return this.height;\r
55 }, "java.awt.image.ImageObserver");\r
56 Clazz.defineMethod (c$, "getWidth", \r
57 function (o) {\r
58 return this.width;\r
59 }, "java.awt.image.ImageObserver");\r
60 });\r