diff --git a/packages/text/src/Text.js b/packages/text/src/Text.js index 169935f..3749e0c 100644 --- a/packages/text/src/Text.js +++ b/packages/text/src/Text.js @@ -143,8 +143,8 @@ const maxLineWidth = measured.maxLineWidth; const fontProperties = measured.fontProperties; - this.canvas.width = Math.ceil((width + (style.padding * 2)) * this.resolution); - this.canvas.height = Math.ceil((height + (style.padding * 2)) * this.resolution); + this.canvas.width = Math.ceil((Math.max(1, width) + (style.padding * 2)) * this.resolution); + this.canvas.height = Math.ceil((Math.max(1, height) + (style.padding * 2)) * this.resolution); context.scale(this.resolution, this.resolution); diff --git a/packages/text/src/Text.js b/packages/text/src/Text.js index 169935f..3749e0c 100644 --- a/packages/text/src/Text.js +++ b/packages/text/src/Text.js @@ -143,8 +143,8 @@ const maxLineWidth = measured.maxLineWidth; const fontProperties = measured.fontProperties; - this.canvas.width = Math.ceil((width + (style.padding * 2)) * this.resolution); - this.canvas.height = Math.ceil((height + (style.padding * 2)) * this.resolution); + this.canvas.width = Math.ceil((Math.max(1, width) + (style.padding * 2)) * this.resolution); + this.canvas.height = Math.ceil((Math.max(1, height) + (style.padding * 2)) * this.resolution); context.scale(this.resolution, this.resolution); diff --git a/packages/text/test/Text.js b/packages/text/test/Text.js index c984ae2..96cc476 100644 --- a/packages/text/test/Text.js +++ b/packages/text/test/Text.js @@ -116,5 +116,19 @@ expect(text.text).to.equal(' '); }); + + it('should keep at least 1 pixel for canvas width and height', function () + { + const text = new Text(''); + + text.updateText(); + + expect(text.canvas.width).to.be.above(1); + expect(text.canvas.height).to.be.above(1); + + text.text = '\n'; + + expect(text.canvas.width).to.be.above(1); + }); }); });