X-Git-Url: http://source.jalview.org/gitweb/?p=jalviewjs.git;a=blobdiff_plain;f=site%2Fswingjs%2Fj2s%2Fswingjs%2FJSImagekit.js;fp=site%2Fswingjs%2Fj2s%2Fswingjs%2FJSImagekit.js;h=d87a913b04d4fadaa9586ac62eac6b8f2f963b16;hp=53ee3cde8f539d5db1630c7512a42122f01c72c6;hb=b9b7a352eee79b7764c3b09c9d19663075061d8c;hpb=7301a2415adab88038b291fc54caeeb3a5a47a44 diff --git a/site/swingjs/j2s/swingjs/JSImagekit.js b/site/swingjs/j2s/swingjs/JSImagekit.js index 53ee3cd..d87a913 100644 --- a/site/swingjs/j2s/swingjs/JSImagekit.js +++ b/site/swingjs/j2s/swingjs/JSImagekit.js @@ -1,90 +1,90 @@ -Clazz.declarePackage ("swingjs"); -Clazz.load (null, "swingjs.JSImagekit", ["java.util.Arrays", "swingjs.JSImage", "swingjs.api.Interface"], function () { -c$ = Clazz.declareType (swingjs, "JSImagekit"); -Clazz.makeConstructor (c$, -function () { -}); -Clazz.defineMethod (c$, "createImageFromBytes", -function (data, imageoffset, imagelength) { -var w = 0; -var h = 0; -var argb = null; -var b = null; -var type = null; -if (data == null) { -w = imageoffset; -h = imagelength; -} else { -if (imagelength < 0) imagelength = data.length; -b = java.util.Arrays.copyOfRange (data, imageoffset, imagelength); -if (b.length < 54) return null; -switch (this.getSourceType (b)) { -case 3: -var ie = swingjs.api.Interface.getInstance ("javajs.img.BMPDecoder", true); -var o = ie.decodeWindowsBMP (b); -if (o == null || o[0] == null) return null; -w = (o[1]).intValue (); -h = (o[2]).intValue (); -argb = o[0]; -break; -case 1: -var pt = 2; -while (true) { -switch (this.getInt (b, pt)) { -case 49407: -case 49919: -h = this.getIntRev (b, pt + 5); -w = this.getIntRev (b, pt + 7); -pt = 0; -break; -} -if (pt == 0) break; -pt += 2 + this.getIntRev (b, pt + 2); -} -type = "jpeg"; -break; -case 0: -w = this.getLong (b, 16); -h = this.getLong (b, 20); -type = "png"; -break; -case 2: -w = this.getInt (b, 6); -h = this.getInt (b, 8); -type = "gif"; -break; -case -1: -System.out.println ("JSImagekit: Unknown image type: " + b[0] + " " + b[1] + " " + b[2] + " " + b[3]); -data = null; -break; -} -}if (w == 0 || h == 0) return null; -var jsimage = new swingjs.JSImage (argb, w, h); -if (data != null && argb == null) jsimage.getDOMImage (b, type); -return jsimage; -}, "~A,~N,~N"); -Clazz.defineMethod (c$, "getLong", - function (b, pt) { -return ((b[pt] & 0xFF) << 24) + ((b[pt + 1] & 0xFF) << 16) + ((b[pt + 2] & 0xFF) << 8) + (b[pt + 3] & 0xFF); -}, "~A,~N"); -Clazz.defineMethod (c$, "getInt", - function (b, pt) { -return (b[pt] & 0xFF) + ((b[pt + 1] & 0xFF) << 8); -}, "~A,~N"); -Clazz.defineMethod (c$, "getIntRev", - function (b, pt) { -return ((b[pt] & 0xFF) << 8) + (b[pt + 1] & 0xFF); -}, "~A,~N"); -Clazz.defineMethod (c$, "getSourceType", - function (b) { -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); -}, "~A"); -Clazz.defineStatics (c$, -"UNK", -1, -"PNG", 0, -"JPG", 1, -"GIF", 2, -"BMP", 3, -"JPG_SOF0", 0xC0FF, -"JPG_SOF2", 0xC2FF); -}); +Clazz.declarePackage ("swingjs"); +Clazz.load (null, "swingjs.JSImagekit", ["java.util.Arrays", "swingjs.JSImage", "swingjs.api.Interface"], function () { +c$ = Clazz.declareType (swingjs, "JSImagekit"); +Clazz.makeConstructor (c$, +function () { +}); +Clazz.defineMethod (c$, "createImageFromBytes", +function (data, imageoffset, imagelength) { +var w = 0; +var h = 0; +var argb = null; +var b = null; +var type = null; +if (data == null) { +w = imageoffset; +h = imagelength; +} else { +if (imagelength < 0) imagelength = data.length; +b = java.util.Arrays.copyOfRange (data, imageoffset, imagelength); +if (b.length < 54) return null; +switch (this.getSourceType (b)) { +case 3: +var ie = swingjs.api.Interface.getInstance ("javajs.img.BMPDecoder", true); +var o = ie.decodeWindowsBMP (b); +if (o == null || o[0] == null) return null; +w = (o[1]).intValue (); +h = (o[2]).intValue (); +argb = o[0]; +break; +case 1: +var pt = 2; +while (true) { +switch (this.getInt (b, pt)) { +case 49407: +case 49919: +h = this.getIntRev (b, pt + 5); +w = this.getIntRev (b, pt + 7); +pt = 0; +break; +} +if (pt == 0) break; +pt += 2 + this.getIntRev (b, pt + 2); +} +type = "jpeg"; +break; +case 0: +w = this.getLong (b, 16); +h = this.getLong (b, 20); +type = "png"; +break; +case 2: +w = this.getInt (b, 6); +h = this.getInt (b, 8); +type = "gif"; +break; +case -1: +System.out.println ("JSImagekit: Unknown image type: " + b[0] + " " + b[1] + " " + b[2] + " " + b[3]); +data = null; +break; +} +}if (w == 0 || h == 0) return null; +var jsimage = new swingjs.JSImage (argb, w, h); +if (data != null && argb == null) jsimage.getDOMImage (b, type); +return jsimage; +}, "~A,~N,~N"); +Clazz.defineMethod (c$, "getLong", + function (b, pt) { +return ((b[pt] & 0xFF) << 24) + ((b[pt + 1] & 0xFF) << 16) + ((b[pt + 2] & 0xFF) << 8) + (b[pt + 3] & 0xFF); +}, "~A,~N"); +Clazz.defineMethod (c$, "getInt", + function (b, pt) { +return (b[pt] & 0xFF) + ((b[pt + 1] & 0xFF) << 8); +}, "~A,~N"); +Clazz.defineMethod (c$, "getIntRev", + function (b, pt) { +return ((b[pt] & 0xFF) << 8) + (b[pt + 1] & 0xFF); +}, "~A,~N"); +Clazz.defineMethod (c$, "getSourceType", + function (b) { +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); +}, "~A"); +Clazz.defineStatics (c$, +"UNK", -1, +"PNG", 0, +"JPG", 1, +"GIF", 2, +"BMP", 3, +"JPG_SOF0", 0xC0FF, +"JPG_SOF2", 0xC2FF); +});