Skip to content

Commit cc565b3

Browse files
committed
Rename Raster#getSubImage() to #getSubCanvas(), and use insert: false combined with #insertAbove() to correctly insert newly created rasters.
1 parent 5981ddf commit cc565b3

3 files changed

Lines changed: 15 additions & 7 deletions

File tree

src/item/Item.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1307,9 +1307,13 @@ var Item = Base.extend(Callback, /** @lends Item# */{
13071307
matrix.applyToContext(ctx);
13081308
// See Project#draw() for an explanation of Base.merge()
13091309
this.draw(ctx, Base.merge({ transforms: [matrix] }));
1310-
var raster = new Raster(canvas);
1311-
raster.setPosition(topLeft.add(size.divide(2)));
13121310
ctx.restore();
1311+
var raster = new Raster({
1312+
canvas: canvas,
1313+
insert: false
1314+
});
1315+
raster.setPosition(topLeft.add(size.divide(2)));
1316+
raster.insertAbove(this);
13131317
// NOTE: We don't need to release the canvas since it now belongs to the
13141318
// Raster!
13151319
return raster;

src/item/Raster.js

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,7 @@ var Raster = Item.extend(/** @lends Raster# */{
244244
this._size = new Size(image.width, image.height);
245245
this._canvas = null;
246246
this._context = null;
247-
this._changed(/*#=*/ Change.GEOMETRY);
247+
this._changed(/*#=*/ Change.GEOMETRY | /*#=*/ Change.PIXELS);
248248
},
249249

250250
/**
@@ -330,7 +330,7 @@ var Raster = Item.extend(/** @lends Raster# */{
330330
*
331331
* @return {Canvas} the sub image as a Canvas object
332332
*/
333-
getSubImage: function(rect) {
333+
getSubCanvas: function(rect) {
334334
rect = Rectangle.read(arguments);
335335
var ctx = CanvasProvider.getContext(rect.getSize());
336336
ctx.drawImage(this.getCanvas(), rect.x, rect.y,
@@ -349,9 +349,13 @@ var Raster = Item.extend(/** @lends Raster# */{
349349
*/
350350
getSubRaster: function(rect) {
351351
rect = Rectangle.read(arguments);
352-
var raster = new Raster(this.getSubImage(rect));
352+
var raster = new Raster({
353+
canvas: this.getSubCanvas(rect),
354+
insert: false
355+
});
353356
raster.translate(rect.getCenter().subtract(this.getSize().divide(2)));
354357
raster._matrix.preConcatenate(this._matrix);
358+
raster.insertAbove(this);
355359
return raster;
356360
},
357361

test/tests/Raster.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,10 +91,10 @@ asyncTest('Raster#getPixel / setPixel', function(callback) {
9191
};
9292
});
9393

94-
asyncTest('Raster#getSubImage', function(callback) {
94+
asyncTest('Raster#getSubCanvas', function(callback) {
9595
var raster = new Raster('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAIAAAD91JpzAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAABlJREFUeNpi+s/AwPCfgYmR4f9/hv8AAQYAHiAFAS8Lwy8AAAAASUVORK5CYII=');
9696
raster.onLoad = function() {
97-
var canvas = raster.getSubImage(new Rectangle({
97+
var canvas = raster.getSubCanvas(new Rectangle({
9898
point: [1, 0],
9999
size: [1, 2]
100100
}));

0 commit comments

Comments
 (0)