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