1 Clazz.declarePackage ("swingjs");
2 Clazz.load (null, "swingjs.JSImagekit", ["java.util.Arrays", "swingjs.JSImage", "swingjs.api.Interface"], function () {
3 c$ = Clazz.declareType (swingjs, "JSImagekit");
4 Clazz.makeConstructor (c$,
7 Clazz.defineMethod (c$, "createImageFromBytes",
8 function (data, imageoffset, imagelength) {
18 if (imagelength < 0) imagelength = data.length;
19 b = java.util.Arrays.copyOfRange (data, imageoffset, imagelength);
20 if (b.length < 54) return null;
21 switch (this.getSourceType (b)) {
23 var ie = swingjs.api.Interface.getInstance ("javajs.img.BMPDecoder", true);
24 var o = ie.decodeWindowsBMP (b);
25 if (o == null || o[0] == null) return null;
26 w = (o[1]).intValue ();
27 h = (o[2]).intValue ();
33 switch (this.getInt (b, pt)) {
36 h = this.getIntRev (b, pt + 5);
37 w = this.getIntRev (b, pt + 7);
42 pt += 2 + this.getIntRev (b, pt + 2);
47 w = this.getLong (b, 16);
48 h = this.getLong (b, 20);
52 w = this.getInt (b, 6);
53 h = this.getInt (b, 8);
57 System.out.println ("JSImagekit: Unknown image type: " + b[0] + " " + b[1] + " " + b[2] + " " + b[3]);
61 }if (w == 0 || h == 0) return null;
62 var jsimage = new swingjs.JSImage (argb, w, h);
63 if (data != null && argb == null) jsimage.getDOMImage (b, type);
66 Clazz.defineMethod (c$, "getLong",
68 return ((b[pt] & 0xFF) << 24) + ((b[pt + 1] & 0xFF) << 16) + ((b[pt + 2] & 0xFF) << 8) + (b[pt + 3] & 0xFF);
70 Clazz.defineMethod (c$, "getInt",
72 return (b[pt] & 0xFF) + ((b[pt + 1] & 0xFF) << 8);
74 Clazz.defineMethod (c$, "getIntRev",
76 return ((b[pt] & 0xFF) << 8) + (b[pt + 1] & 0xFF);
78 Clazz.defineMethod (c$, "getSourceType",
80 return ((b[0] & 0xFF) == 0x89 && b[1] == 80 && b[2] == 78 && b[3] == 71 ? 0 : (b[0] & 0xFF) == 0xFF && (b[1] & 0xFF) == 0xD8 ? 1 : b[0] == 71 && b[1] == 73 && b[2] == 70 ? 2 : b[0] == 66 && b[1] == 77 ? 3 : -1);
82 Clazz.defineStatics (c$,