Fix empty image drawing ()

Empty raster (for example coming from path with empty bound
rasterization, ...) drawing threw error.
This change prevent raster drawing in that case.
Closes 
This commit is contained in:
Samuel Asensi 2018-11-14 11:21:40 +01:00 committed by Jürg Lehni
parent 8202f78453
commit 2968faad51
3 changed files with 16 additions and 1 deletions

View file

@ -1,5 +1,13 @@
# Change Log # Change Log
## Prebuilt version
### Fixed
- Fix empty image drawing (#1320).
### Added
## `0.11.8` ## `0.11.8`
### News ### News

View file

@ -753,7 +753,8 @@ var Raster = Item.extend(/** @lends Raster# */{
_draw: function(ctx, param, viewMatrix) { _draw: function(ctx, param, viewMatrix) {
var element = this.getElement(); var element = this.getElement();
if (element) { // Only draw if image is not empty (#1320).
if (element && element.width > 0 && element.height > 0) {
// Handle opacity for Rasters separately from the rest, since // Handle opacity for Rasters separately from the rest, since
// Rasters never draw a stroke. See Item#draw(). // Rasters never draw a stroke. See Item#draw().
ctx.globalAlpha = this._opacity; ctx.globalAlpha = this._opacity;

View file

@ -945,3 +945,9 @@ test('Children global matrices are cleared after parent transformation', functio
group.translate(100, 0); group.translate(100, 0);
equals(item.localToGlobal(item.getPointAt(0)), new Point(100, 100)); equals(item.localToGlobal(item.getPointAt(0)), new Point(100, 100));
}); });
test('Item#rasterize() with empty bounds', function() {
new Path.Line([0, 0], [100, 0]).rasterize();
view.update();
expect(0);
});