1 Clazz.declarePackage ("java.awt.image");
2 Clazz.load (["java.awt.Image", "$.Transparency"], "java.awt.image.BufferedImage", ["java.awt.Image", "java.lang.IllegalArgumentException", "$.NullPointerException", "java.util.Hashtable", "java.awt.GraphicsEnvironment", "$.Point", "$.Rectangle", "java.awt.image.ColorModel", "$.DirectColorModel", "$.Raster", "jssun.awt.image.OffScreenImageSource"], function () {
3 c$ = Clazz.decorateAsClass (function () {
5 this.colorModel = null;
8 this.properties = null;
9 this.$isAlphaPremultiplied = false;
10 Clazz.instantialize (this, arguments);
11 }, java.awt.image, "BufferedImage", java.awt.Image, java.awt.Transparency);
12 Clazz.makeConstructor (c$,
13 function (width, height, imageType) {
14 Clazz.superConstructor (this, java.awt.image.BufferedImage, []);
18 this.colorModel = new java.awt.image.DirectColorModel (24, 0x00ff0000, 0x0000ff00, 0x000000ff, 0x0);
19 this.raster = this.colorModel.createCompatibleWritableRaster (width, height);
23 this.colorModel = java.awt.image.ColorModel.getRGBdefault ();
24 this.raster = this.colorModel.createCompatibleWritableRaster (width, height);
27 throw new IllegalArgumentException ("Unknown image type " + imageType);
29 this.imageType = imageType;
31 Clazz.makeConstructor (c$,
32 function (cm, raster, isRasterPremultiplied, properties) {
33 Clazz.superConstructor (this, java.awt.image.BufferedImage, []);
34 if ((raster.minX != 0) || (raster.minY != 0)) {
35 throw new IllegalArgumentException ("Raster " + raster + " has minX or minY not equal to zero: " + raster.minX + " " + raster.minY);
36 }this.colorModel = cm;
38 this.properties = properties;
40 cs = cm.getColorSpace ();
41 }, "java.awt.image.ColorModel,java.awt.image.WritableRaster,~B,java.util.Hashtable");
42 Clazz.defineMethod (c$, "getType",
44 return this.imageType;
46 Clazz.defineMethod (c$, "getColorModel",
48 return this.colorModel;
50 Clazz.defineMethod (c$, "getRaster",
54 Clazz.defineMethod (c$, "getRGB",
58 Clazz.defineMethod (c$, "getRGB",
59 function (startX, startY, w, h, rgbArray, offset, scansize) {
61 }, "~N,~N,~N,~N,~A,~N,~N");
62 Clazz.defineMethod (c$, "setRGB",
63 function (x, y, rgb) {
65 Clazz.defineMethod (c$, "setRGB",
66 function (startX, startY, w, h, rgbArray, offset, scansize) {
67 }, "~N,~N,~N,~N,~A,~N,~N");
68 Clazz.defineMethod (c$, "getWidth",
70 return this.raster.getWidth ();
72 Clazz.defineMethod (c$, "getHeight",
74 return this.raster.getHeight ();
76 Clazz.defineMethod (c$, "getWidth",
78 return this.raster.getWidth ();
79 }, "java.awt.image.ImageObserver");
80 Clazz.defineMethod (c$, "getHeight",
82 return this.raster.getHeight ();
83 }, "java.awt.image.ImageObserver");
84 Clazz.overrideMethod (c$, "getSource",
86 if (this.osis == null) {
87 if (this.properties == null) {
88 this.properties = new java.util.Hashtable ();
89 }this.osis = new jssun.awt.image.OffScreenImageSource (this, this.properties);
92 Clazz.defineMethod (c$, "getProperty",
93 function (name, observer) {
94 return this.getProperty (name);
95 }, "~S,java.awt.image.ImageObserver");
96 Clazz.defineMethod (c$, "getProperty",
99 throw new NullPointerException ("null property name is not allowed");
100 }if (this.properties == null) {
101 return java.awt.Image.UndefinedProperty;
102 }var o = this.properties.get (name);
104 o = java.awt.Image.UndefinedProperty;
107 Clazz.overrideMethod (c$, "getGraphics",
109 return this.createGraphics ();
111 Clazz.defineMethod (c$, "createGraphics",
113 var env = java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment ();
114 return env.createGraphics (this);
116 Clazz.defineMethod (c$, "getSubimage",
117 function (x, y, w, h) {
118 return new java.awt.image.BufferedImage (this.colorModel, this.raster.createWritableChild (x, y, w, h, 0, 0, null), this.colorModel.isAlphaPremultiplied (), this.properties);
120 Clazz.defineMethod (c$, "isAlphaPremultiplied",
124 Clazz.overrideMethod (c$, "toString",
126 return String.instantialize ("BufferedImage@" + Integer.toHexString (this.hashCode ()) + ": type = " + this.imageType + " " + this.colorModel + " " + this.raster);
128 Clazz.defineMethod (c$, "getSources",
132 Clazz.defineMethod (c$, "getPropertyNames",
136 Clazz.defineMethod (c$, "getMinX",
138 return this.raster.getMinX ();
140 Clazz.defineMethod (c$, "getMinY",
142 return this.raster.getMinY ();
144 Clazz.defineMethod (c$, "getSampleModel",
146 return this.raster.getSampleModel ();
148 Clazz.defineMethod (c$, "getNumXTiles",
152 Clazz.defineMethod (c$, "getNumYTiles",
156 Clazz.defineMethod (c$, "getMinTileX",
160 Clazz.defineMethod (c$, "getMinTileY",
164 Clazz.defineMethod (c$, "getTileWidth",
166 return this.raster.getWidth ();
168 Clazz.defineMethod (c$, "getTileHeight",
170 return this.raster.getHeight ();
172 Clazz.defineMethod (c$, "getTileGridXOffset",
176 Clazz.defineMethod (c$, "getTileGridYOffset",
180 Clazz.defineMethod (c$, "getTile",
181 function (tileX, tileY) {
184 Clazz.defineMethod (c$, "getData",
186 var width = this.raster.getWidth ();
187 var height = this.raster.getHeight ();
188 var startX = this.raster.getMinX ();
189 var startY = this.raster.getMinY ();
190 var wr = java.awt.image.Raster.createWritableRaster (this.raster.getSampleModel (), new java.awt.Point (this.raster.getSampleModelTranslateX (), this.raster.getSampleModelTranslateY ()));
192 for (var i = startY; i < startY + height; i++) {
193 tdata = this.raster.getDataElements (startX, i, width, 1, tdata);
194 wr.setDataElements (startX, i, width, 1, tdata);
198 Clazz.defineMethod (c$, "getData",
200 var sm = this.raster.getSampleModel ();
201 var nsm = sm.createCompatibleSampleModel (rect.width, rect.height);
202 var wr = java.awt.image.Raster.createWritableRaster (nsm, rect.getLocation ());
203 var width = rect.width;
204 var height = rect.height;
208 for (var i = startY; i < startY + height; i++) {
209 tdata = this.raster.getDataElements (startX, i, width, 1, tdata);
210 wr.setDataElements (startX, i, width, 1, tdata);
213 }, "java.awt.Rectangle");
214 Clazz.defineMethod (c$, "copyData",
215 function (outRaster) {
216 if (outRaster == null) {
217 return this.getData ();
218 }var width = outRaster.getWidth ();
219 var height = outRaster.getHeight ();
220 var startX = outRaster.getMinX ();
221 var startY = outRaster.getMinY ();
223 for (var i = startY; i < startY + height; i++) {
224 tdata = this.raster.getDataElements (startX, i, width, 1, tdata);
225 outRaster.setDataElements (startX, i, width, 1, tdata);
228 }, "java.awt.image.WritableRaster");
229 Clazz.defineMethod (c$, "setData",
231 var width = r.getWidth ();
232 var height = r.getHeight ();
233 var startX = r.getMinX ();
234 var startY = r.getMinY ();
236 var rclip = new java.awt.Rectangle (startX, startY, width, height);
237 var bclip = new java.awt.Rectangle (0, 0, this.raster.width, this.raster.height);
238 var intersect = rclip.intersection (bclip);
239 if (intersect.isEmpty ()) {
241 }width = intersect.width;
242 height = intersect.height;
243 startX = intersect.x;
244 startY = intersect.y;
245 for (var i = startY; i < startY + height; i++) {
246 tdata = r.getPixels (startX, i, width, 1, tdata);
247 this.raster.setPixels (startX, i, width, 1, tdata);
249 }, "java.awt.image.Raster");
250 Clazz.overrideMethod (c$, "getTransparency",
252 return this.colorModel.getTransparency ();
254 Clazz.defineStatics (c$,