Merge branch 'master' of https://source.jalview.org/git/jalviewjs.git
[jalviewjs.git] / site / j2s / java / awt / image / RescaleOp.js
index 69b32b4..7e7b034 100644 (file)
-Clazz.declarePackage ("java.awt.image");\r
-Clazz.load (["java.awt.image.BufferedImageOp", "$.RasterOp"], "java.awt.image.RescaleOp", ["java.lang.IllegalArgumentException", "java.awt.geom.Point2D", "java.awt.image.BufferedImage", "$.ByteLookupTable", "$.ImagingOpException", "$.LookupOp", "swingjs.JSToolkit"], function () {\r
-c$ = Clazz.decorateAsClass (function () {\r
-this.scaleFactors = null;\r
-this.offsets = null;\r
-this.length = 0;\r
-this.hints = null;\r
-this.swingJStype = 'R';\r
-this.srcNbits = 0;\r
-this.dstNbits = 0;\r
-Clazz.instantialize (this, arguments);\r
-}, java.awt.image, "RescaleOp", null, [java.awt.image.BufferedImageOp, java.awt.image.RasterOp]);\r
-Clazz.makeConstructor (c$, \r
-function (scaleFactors, offsets, hints) {\r
-this.length = scaleFactors.length;\r
-if (this.length > offsets.length) this.length = offsets.length;\r
-this.scaleFactors =  Clazz.newFloatArray (this.length, 0);\r
-this.offsets =  Clazz.newFloatArray (this.length, 0);\r
-for (var i = 0; i < this.length; i++) {\r
-this.scaleFactors[i] = scaleFactors[i];\r
-this.offsets[i] = offsets[i];\r
-}\r
-this.hints = hints;\r
-}, "~A,~A,java.awt.RenderingHints");\r
-Clazz.makeConstructor (c$, \r
-function (scaleFactor, offset, hints) {\r
-this.length = 1;\r
-this.scaleFactors =  Clazz.newFloatArray (1, 0);\r
-this.offsets =  Clazz.newFloatArray (1, 0);\r
-this.scaleFactors[0] = scaleFactor;\r
-this.offsets[0] = offset;\r
-this.hints = hints;\r
-}, "~N,~N,java.awt.RenderingHints");\r
-Clazz.defineMethod (c$, "getScaleFactors", \r
-function (scaleFactors) {\r
-if (scaleFactors == null) {\r
-return this.scaleFactors.clone ();\r
-}System.arraycopy (this.scaleFactors, 0, scaleFactors, 0, Math.min (this.scaleFactors.length, scaleFactors.length));\r
-return scaleFactors;\r
-}, "~A");\r
-Clazz.defineMethod (c$, "getOffsets", \r
-function (offsets) {\r
-if (offsets == null) {\r
-return this.offsets.clone ();\r
-}System.arraycopy (this.offsets, 0, offsets, 0, Math.min (this.offsets.length, offsets.length));\r
-return offsets;\r
-}, "~A");\r
-Clazz.defineMethod (c$, "getNumFactors", \r
-function () {\r
-return this.length;\r
-});\r
-Clazz.defineMethod (c$, "createByteLut", \r
- function (scale, off, nBands, nElems) {\r
-var lutData =  Clazz.newByteArray (scale.length, nElems, 0);\r
-for (var band = 0; band < scale.length; band++) {\r
-var bandScale = scale[band];\r
-var bandOff = off[band];\r
-var bandLutData = lutData[band];\r
-for (var i = 0; i < nElems; i++) {\r
-var val = Clazz.floatToInt (i * bandScale + bandOff);\r
-if ((val & 0xffffff00) != 0) {\r
-if (val < 0) {\r
-val = 0;\r
-} else {\r
-val = 255;\r
-}}bandLutData[i] = val;\r
-}\r
-}\r
-return  new java.awt.image.ByteLookupTable (0, lutData);\r
-}, "~A,~A,~N,~N");\r
-Clazz.defineMethod (c$, "canUseLookup", \r
- function (src, dst) {\r
-var datatype = src.getDataBuffer ().getDataType ();\r
-if (datatype != 0) {\r
-return false;\r
-}var dstSM = dst.getSampleModel ();\r
-this.dstNbits = dstSM.getSampleSize (0);\r
-if (!(this.dstNbits == 8 || this.dstNbits == 16)) {\r
-return false;\r
-}for (var i = 1; i < src.getNumBands (); i++) {\r
-var bandSize = dstSM.getSampleSize (i);\r
-if (bandSize != this.dstNbits) {\r
-return false;\r
-}}\r
-var srcSM = src.getSampleModel ();\r
-this.srcNbits = srcSM.getSampleSize (0);\r
-if (this.srcNbits > 16) {\r
-return false;\r
-}for (var i = 1; i < src.getNumBands (); i++) {\r
-var bandSize = srcSM.getSampleSize (i);\r
-if (bandSize != this.srcNbits) {\r
-return false;\r
-}}\r
-return true;\r
-}, "java.awt.image.Raster,java.awt.image.Raster");\r
-Clazz.defineMethod (c$, "filter", \r
-function (src, dst) {\r
-var srcCM = src.getColorModel ();\r
-var dstCM;\r
-var numBands = srcCM.getNumColorComponents ();\r
-if (this.length != 1 && this.length != numBands && this.length != srcCM.getNumComponents ()) {\r
-throw  new IllegalArgumentException ("Number of scaling constants does not equal the number of of color or color/alpha  components");\r
-}if (this.length > numBands && srcCM.hasAlpha ()) {\r
-this.length = numBands + 1;\r
-}var width = src.getWidth ();\r
-var height = src.getHeight ();\r
-if (dst == null) {\r
-dst = this.createCompatibleDestImage (src, null);\r
-dstCM = srcCM;\r
-} else {\r
-if (width != dst.getWidth ()) {\r
-throw  new IllegalArgumentException ("Src width (" + width + ") not equal to dst width (" + dst.getWidth () + ")");\r
-}if (height != dst.getHeight ()) {\r
-throw  new IllegalArgumentException ("Src height (" + height + ") not equal to dst height (" + dst.getHeight () + ")");\r
-}dstCM = dst.getColorModel ();\r
-if (srcCM.getColorSpace ().getType () != dstCM.getColorSpace ().getType ()) {\r
-swingjs.JSToolkit.notImplemented (null);\r
-throw  new java.awt.image.ImagingOpException ("SwingJS only supports RGB color space");\r
-}}var origDst = dst;\r
-var srcRaster = src.getRaster ();\r
-var dstRaster = dst.getRaster ();\r
-if (srcCM.hasAlpha ()) {\r
-if (numBands - 1 == this.length || this.length == 1) {\r
-var minx = srcRaster.getMinX ();\r
-var miny = srcRaster.getMinY ();\r
-var bands =  Clazz.newIntArray (numBands - 1, 0);\r
-for (var i = 0; i < numBands - 1; i++) {\r
-bands[i] = i;\r
-}\r
-srcRaster = srcRaster.createWritableChild (minx, miny, srcRaster.getWidth (), srcRaster.getHeight (), minx, miny, bands);\r
-}}if (dstCM.hasAlpha ()) {\r
-var dstNumBands = dstRaster.getNumBands ();\r
-if (dstNumBands - 1 == this.length || this.length == 1) {\r
-var minx = dstRaster.getMinX ();\r
-var miny = dstRaster.getMinY ();\r
-var bands =  Clazz.newIntArray (numBands - 1, 0);\r
-for (var i = 0; i < numBands - 1; i++) {\r
-bands[i] = i;\r
-}\r
-dstRaster = dstRaster.createWritableChild (minx, miny, dstRaster.getWidth (), dstRaster.getHeight (), minx, miny, bands);\r
-}}this.filter (srcRaster, dstRaster);\r
-return origDst;\r
-}, "java.awt.image.BufferedImage,java.awt.image.BufferedImage");\r
-Clazz.defineMethod (c$, "filter", \r
-function (src, dst) {\r
-var numBands = src.getNumBands ();\r
-var width = src.getWidth ();\r
-var height = src.getHeight ();\r
-var srcPix = null;\r
-var step = 0;\r
-var tidx = 0;\r
-if (dst == null) {\r
-dst = this.createCompatibleDestRaster (src);\r
-} else if (height != dst.getHeight () || width != dst.getWidth ()) {\r
-throw  new IllegalArgumentException ("Width or height of Rasters do not match");\r
-} else if (numBands != dst.getNumBands ()) {\r
-throw  new IllegalArgumentException ("Number of bands in src " + numBands + " does not equal number of bands in dest " + dst.getNumBands ());\r
-}if (this.length != 1 && this.length != src.getNumBands ()) {\r
-throw  new IllegalArgumentException ("Number of scaling constants does not equal the number of of bands in the src raster");\r
-}if (this.canUseLookup (src, dst)) {\r
-var srcNgray = (1 << this.srcNbits);\r
-var dstNgray = (1 << this.dstNbits);\r
-if (dstNgray != 256) {\r
-throw  new java.awt.image.ImagingOpException ("SwingJS requires 256 gray scale");\r
-}if (dstNgray == 256) {\r
-var lut = this.createByteLut (this.scaleFactors, this.offsets, numBands, srcNgray);\r
-var op =  new java.awt.image.LookupOp (lut, this.hints);\r
-op.filter (src, dst);\r
-}} else {\r
-if (this.length > 1) {\r
-step = 1;\r
-}var sminX = src.getMinX ();\r
-var sY = src.getMinY ();\r
-var dminX = dst.getMinX ();\r
-var dY = dst.getMinY ();\r
-var sX;\r
-var dX;\r
-var nbits;\r
-var dstMax =  Clazz.newIntArray (numBands, 0);\r
-var dstMask =  Clazz.newIntArray (numBands, 0);\r
-var dstSM = dst.getSampleModel ();\r
-for (var z = 0; z < numBands; z++) {\r
-nbits = dstSM.getSampleSize (z);\r
-dstMax[z] = (1 << nbits) - 1;\r
-dstMask[z] = ~(dstMax[z]);\r
-}\r
-var val;\r
-for (var y = 0; y < height; y++, sY++, dY++) {\r
-dX = dminX;\r
-sX = sminX;\r
-for (var x = 0; x < width; x++, sX++, dX++) {\r
-srcPix = src.getPixel (sX, sY, srcPix);\r
-tidx = 0;\r
-for (var z = 0; z < numBands; z++, tidx += step) {\r
-val = Clazz.floatToInt (srcPix[z] * this.scaleFactors[tidx] + this.offsets[tidx]);\r
-if ((val & dstMask[z]) != 0) {\r
-if (val < 0) {\r
-val = 0;\r
-} else {\r
-val = dstMax[z];\r
-}}srcPix[z] = val;\r
-}\r
-dst.setPixel (dX, dY, srcPix);\r
-}\r
-}\r
-}return dst;\r
-}, "java.awt.image.Raster,java.awt.image.WritableRaster");\r
-Clazz.defineMethod (c$, "getBounds2D", \r
-function (src) {\r
-return this.getBounds2D (src.getRaster ());\r
-}, "java.awt.image.BufferedImage");\r
-Clazz.defineMethod (c$, "getBounds2D", \r
-function (src) {\r
-return src.getBounds ();\r
-}, "java.awt.image.Raster");\r
-Clazz.overrideMethod (c$, "createCompatibleDestImage", \r
-function (src, destCM) {\r
-var image;\r
-if (destCM == null) {\r
-var cm = src.getColorModel ();\r
-image =  new java.awt.image.BufferedImage (cm, src.getRaster ().createCompatibleWritableRaster (), cm.isAlphaPremultiplied (), null);\r
-} else {\r
-var w = src.getWidth ();\r
-var h = src.getHeight ();\r
-image =  new java.awt.image.BufferedImage (destCM, destCM.createCompatibleWritableRaster (w, h), destCM.isAlphaPremultiplied (), null);\r
-}return image;\r
-}, "java.awt.image.BufferedImage,java.awt.image.ColorModel");\r
-Clazz.overrideMethod (c$, "createCompatibleDestRaster", \r
-function (src) {\r
-return src.createCompatibleWritableRaster (src.getWidth (), src.getHeight ());\r
-}, "java.awt.image.Raster");\r
-Clazz.overrideMethod (c$, "getPoint2D", \r
-function (srcPt, dstPt) {\r
-if (dstPt == null) {\r
-dstPt =  new java.awt.geom.Point2D.Float ();\r
-}dstPt.setLocation (srcPt.getX (), srcPt.getY ());\r
-return dstPt;\r
-}, "java.awt.geom.Point2D,java.awt.geom.Point2D");\r
-Clazz.overrideMethod (c$, "getRenderingHints", \r
-function () {\r
-return this.hints;\r
-});\r
-});\r
+Clazz.declarePackage ("java.awt.image");
+Clazz.load (["java.awt.image.BufferedImageOp", "$.RasterOp"], "java.awt.image.RescaleOp", ["java.lang.IllegalArgumentException", "java.awt.geom.Point2D", "java.awt.image.BufferedImage", "$.ByteLookupTable", "$.ImagingOpException", "$.LookupOp", "swingjs.JSToolkit"], function () {
+c$ = Clazz.decorateAsClass (function () {
+this.scaleFactors = null;
+this.offsets = null;
+this.length = 0;
+this.hints = null;
+this.swingJStype = 'R';
+this.srcNbits = 0;
+this.dstNbits = 0;
+Clazz.instantialize (this, arguments);
+}, java.awt.image, "RescaleOp", null, [java.awt.image.BufferedImageOp, java.awt.image.RasterOp]);
+Clazz.makeConstructor (c$, 
+function (scaleFactors, offsets, hints) {
+this.length = scaleFactors.length;
+if (this.length > offsets.length) this.length = offsets.length;
+this.scaleFactors =  Clazz.newFloatArray (this.length, 0);
+this.offsets =  Clazz.newFloatArray (this.length, 0);
+for (var i = 0; i < this.length; i++) {
+this.scaleFactors[i] = scaleFactors[i];
+this.offsets[i] = offsets[i];
+}
+this.hints = hints;
+}, "~A,~A,java.awt.RenderingHints");
+Clazz.makeConstructor (c$, 
+function (scaleFactor, offset, hints) {
+this.length = 1;
+this.scaleFactors =  Clazz.newFloatArray (1, 0);
+this.offsets =  Clazz.newFloatArray (1, 0);
+this.scaleFactors[0] = scaleFactor;
+this.offsets[0] = offset;
+this.hints = hints;
+}, "~N,~N,java.awt.RenderingHints");
+Clazz.defineMethod (c$, "getScaleFactors", 
+function (scaleFactors) {
+if (scaleFactors == null) {
+return this.scaleFactors.clone ();
+}System.arraycopy (this.scaleFactors, 0, scaleFactors, 0, Math.min (this.scaleFactors.length, scaleFactors.length));
+return scaleFactors;
+}, "~A");
+Clazz.defineMethod (c$, "getOffsets", 
+function (offsets) {
+if (offsets == null) {
+return this.offsets.clone ();
+}System.arraycopy (this.offsets, 0, offsets, 0, Math.min (this.offsets.length, offsets.length));
+return offsets;
+}, "~A");
+Clazz.defineMethod (c$, "getNumFactors", 
+function () {
+return this.length;
+});
+Clazz.defineMethod (c$, "createByteLut", 
+ function (scale, off, nBands, nElems) {
+var lutData =  Clazz.newByteArray (scale.length, nElems, 0);
+for (var band = 0; band < scale.length; band++) {
+var bandScale = scale[band];
+var bandOff = off[band];
+var bandLutData = lutData[band];
+for (var i = 0; i < nElems; i++) {
+var val = Clazz.floatToInt (i * bandScale + bandOff);
+if ((val & 0xffffff00) != 0) {
+if (val < 0) {
+val = 0;
+} else {
+val = 255;
+}}bandLutData[i] = val;
+}
+}
+return  new java.awt.image.ByteLookupTable (0, lutData);
+}, "~A,~A,~N,~N");
+Clazz.defineMethod (c$, "canUseLookup", 
+ function (src, dst) {
+var datatype = src.getDataBuffer ().getDataType ();
+if (datatype != 0) {
+return false;
+}var dstSM = dst.getSampleModel ();
+this.dstNbits = dstSM.getSampleSize (0);
+if (!(this.dstNbits == 8 || this.dstNbits == 16)) {
+return false;
+}for (var i = 1; i < src.getNumBands (); i++) {
+var bandSize = dstSM.getSampleSize (i);
+if (bandSize != this.dstNbits) {
+return false;
+}}
+var srcSM = src.getSampleModel ();
+this.srcNbits = srcSM.getSampleSize (0);
+if (this.srcNbits > 16) {
+return false;
+}for (var i = 1; i < src.getNumBands (); i++) {
+var bandSize = srcSM.getSampleSize (i);
+if (bandSize != this.srcNbits) {
+return false;
+}}
+return true;
+}, "java.awt.image.Raster,java.awt.image.Raster");
+Clazz.defineMethod (c$, "filter", 
+function (src, dst) {
+var srcCM = src.getColorModel ();
+var dstCM;
+var numBands = srcCM.getNumColorComponents ();
+if (this.length != 1 && this.length != numBands && this.length != srcCM.getNumComponents ()) {
+throw  new IllegalArgumentException ("Number of scaling constants does not equal the number of of color or color/alpha  components");
+}if (this.length > numBands && srcCM.hasAlpha ()) {
+this.length = numBands + 1;
+}var width = src.getWidth ();
+var height = src.getHeight ();
+if (dst == null) {
+dst = this.createCompatibleDestImage (src, null);
+dstCM = srcCM;
+} else {
+if (width != dst.getWidth ()) {
+throw  new IllegalArgumentException ("Src width (" + width + ") not equal to dst width (" + dst.getWidth () + ")");
+}if (height != dst.getHeight ()) {
+throw  new IllegalArgumentException ("Src height (" + height + ") not equal to dst height (" + dst.getHeight () + ")");
+}dstCM = dst.getColorModel ();
+if (srcCM.getColorSpace ().getType () != dstCM.getColorSpace ().getType ()) {
+swingjs.JSToolkit.notImplemented (null);
+throw  new java.awt.image.ImagingOpException ("SwingJS only supports RGB color space");
+}}var origDst = dst;
+var srcRaster = src.getRaster ();
+var dstRaster = dst.getRaster ();
+if (srcCM.hasAlpha ()) {
+if (numBands - 1 == this.length || this.length == 1) {
+var minx = srcRaster.getMinX ();
+var miny = srcRaster.getMinY ();
+var bands =  Clazz.newIntArray (numBands - 1, 0);
+for (var i = 0; i < numBands - 1; i++) {
+bands[i] = i;
+}
+srcRaster = srcRaster.createWritableChild (minx, miny, srcRaster.getWidth (), srcRaster.getHeight (), minx, miny, bands);
+}}if (dstCM.hasAlpha ()) {
+var dstNumBands = dstRaster.getNumBands ();
+if (dstNumBands - 1 == this.length || this.length == 1) {
+var minx = dstRaster.getMinX ();
+var miny = dstRaster.getMinY ();
+var bands =  Clazz.newIntArray (numBands - 1, 0);
+for (var i = 0; i < numBands - 1; i++) {
+bands[i] = i;
+}
+dstRaster = dstRaster.createWritableChild (minx, miny, dstRaster.getWidth (), dstRaster.getHeight (), minx, miny, bands);
+}}this.filter (srcRaster, dstRaster);
+return origDst;
+}, "java.awt.image.BufferedImage,java.awt.image.BufferedImage");
+Clazz.defineMethod (c$, "filter", 
+function (src, dst) {
+var numBands = src.getNumBands ();
+var width = src.getWidth ();
+var height = src.getHeight ();
+var srcPix = null;
+var step = 0;
+var tidx = 0;
+if (dst == null) {
+dst = this.createCompatibleDestRaster (src);
+} else if (height != dst.getHeight () || width != dst.getWidth ()) {
+throw  new IllegalArgumentException ("Width or height of Rasters do not match");
+} else if (numBands != dst.getNumBands ()) {
+throw  new IllegalArgumentException ("Number of bands in src " + numBands + " does not equal number of bands in dest " + dst.getNumBands ());
+}if (this.length != 1 && this.length != src.getNumBands ()) {
+throw  new IllegalArgumentException ("Number of scaling constants does not equal the number of of bands in the src raster");
+}if (this.canUseLookup (src, dst)) {
+var srcNgray = (1 << this.srcNbits);
+var dstNgray = (1 << this.dstNbits);
+if (dstNgray != 256) {
+throw  new java.awt.image.ImagingOpException ("SwingJS requires 256 gray scale");
+}if (dstNgray == 256) {
+var lut = this.createByteLut (this.scaleFactors, this.offsets, numBands, srcNgray);
+var op =  new java.awt.image.LookupOp (lut, this.hints);
+op.filter (src, dst);
+}} else {
+if (this.length > 1) {
+step = 1;
+}var sminX = src.getMinX ();
+var sY = src.getMinY ();
+var dminX = dst.getMinX ();
+var dY = dst.getMinY ();
+var sX;
+var dX;
+var nbits;
+var dstMax =  Clazz.newIntArray (numBands, 0);
+var dstMask =  Clazz.newIntArray (numBands, 0);
+var dstSM = dst.getSampleModel ();
+for (var z = 0; z < numBands; z++) {
+nbits = dstSM.getSampleSize (z);
+dstMax[z] = (1 << nbits) - 1;
+dstMask[z] = ~(dstMax[z]);
+}
+var val;
+for (var y = 0; y < height; y++, sY++, dY++) {
+dX = dminX;
+sX = sminX;
+for (var x = 0; x < width; x++, sX++, dX++) {
+srcPix = src.getPixel (sX, sY, srcPix);
+tidx = 0;
+for (var z = 0; z < numBands; z++, tidx += step) {
+val = Clazz.floatToInt (srcPix[z] * this.scaleFactors[tidx] + this.offsets[tidx]);
+if ((val & dstMask[z]) != 0) {
+if (val < 0) {
+val = 0;
+} else {
+val = dstMax[z];
+}}srcPix[z] = val;
+}
+dst.setPixel (dX, dY, srcPix);
+}
+}
+}return dst;
+}, "java.awt.image.Raster,java.awt.image.WritableRaster");
+Clazz.defineMethod (c$, "getBounds2D", 
+function (src) {
+return this.getBounds2D (src.getRaster ());
+}, "java.awt.image.BufferedImage");
+Clazz.defineMethod (c$, "getBounds2D", 
+function (src) {
+return src.getBounds ();
+}, "java.awt.image.Raster");
+Clazz.overrideMethod (c$, "createCompatibleDestImage", 
+function (src, destCM) {
+var image;
+if (destCM == null) {
+var cm = src.getColorModel ();
+image =  new java.awt.image.BufferedImage (cm, src.getRaster ().createCompatibleWritableRaster (), cm.isAlphaPremultiplied (), null);
+} else {
+var w = src.getWidth ();
+var h = src.getHeight ();
+image =  new java.awt.image.BufferedImage (destCM, destCM.createCompatibleWritableRaster (w, h), destCM.isAlphaPremultiplied (), null);
+}return image;
+}, "java.awt.image.BufferedImage,java.awt.image.ColorModel");
+Clazz.overrideMethod (c$, "createCompatibleDestRaster", 
+function (src) {
+return src.createCompatibleWritableRaster (src.getWidth (), src.getHeight ());
+}, "java.awt.image.Raster");
+Clazz.overrideMethod (c$, "getPoint2D", 
+function (srcPt, dstPt) {
+if (dstPt == null) {
+dstPt =  new java.awt.geom.Point2D.Float ();
+}dstPt.setLocation (srcPt.getX (), srcPt.getY ());
+return dstPt;
+}, "java.awt.geom.Point2D,java.awt.geom.Point2D");
+Clazz.overrideMethod (c$, "getRenderingHints", 
+function () {
+return this.hints;
+});
+});