diff --git a/packages/text/src/Text.js b/packages/text/src/Text.js index d85d8dc..7f33914 100644 --- a/packages/text/src/Text.js +++ b/packages/text/src/Text.js @@ -318,9 +318,12 @@ { const trimmed = trimCanvas(canvas); - canvas.width = trimmed.width; - canvas.height = trimmed.height; - this.context.putImageData(trimmed.data, 0, 0); + if (trimmed.data) + { + canvas.width = trimmed.width; + canvas.height = trimmed.height; + this.context.putImageData(trimmed.data, 0, 0); + } } const texture = this._texture; diff --git a/packages/text/src/Text.js b/packages/text/src/Text.js index d85d8dc..7f33914 100644 --- a/packages/text/src/Text.js +++ b/packages/text/src/Text.js @@ -318,9 +318,12 @@ { const trimmed = trimCanvas(canvas); - canvas.width = trimmed.width; - canvas.height = trimmed.height; - this.context.putImageData(trimmed.data, 0, 0); + if (trimmed.data) + { + canvas.width = trimmed.width; + canvas.height = trimmed.height; + this.context.putImageData(trimmed.data, 0, 0); + } } const texture = this._texture; diff --git a/packages/text/test/Text.js b/packages/text/test/Text.js index 96cc476..f6c7380 100644 --- a/packages/text/test/Text.js +++ b/packages/text/test/Text.js @@ -110,6 +110,13 @@ expect(text.text).to.equal(' '); }); + it('should trim an empty string', function () + { + const text = new Text('', { trim: true }); + + expect(text.text).to.equal(' '); + }); + it('should prevent setting \'\'', function () { const text = new Text(''); diff --git a/packages/text/src/Text.js b/packages/text/src/Text.js index d85d8dc..7f33914 100644 --- a/packages/text/src/Text.js +++ b/packages/text/src/Text.js @@ -318,9 +318,12 @@ { const trimmed = trimCanvas(canvas); - canvas.width = trimmed.width; - canvas.height = trimmed.height; - this.context.putImageData(trimmed.data, 0, 0); + if (trimmed.data) + { + canvas.width = trimmed.width; + canvas.height = trimmed.height; + this.context.putImageData(trimmed.data, 0, 0); + } } const texture = this._texture; diff --git a/packages/text/test/Text.js b/packages/text/test/Text.js index 96cc476..f6c7380 100644 --- a/packages/text/test/Text.js +++ b/packages/text/test/Text.js @@ -110,6 +110,13 @@ expect(text.text).to.equal(' '); }); + it('should trim an empty string', function () + { + const text = new Text('', { trim: true }); + + expect(text.text).to.equal(' '); + }); + it('should prevent setting \'\'', function () { const text = new Text(''); diff --git a/packages/utils/src/media/trimCanvas.js b/packages/utils/src/media/trimCanvas.js index 70514b6..1fddcf6 100644 --- a/packages/utils/src/media/trimCanvas.js +++ b/packages/utils/src/media/trimCanvas.js @@ -25,6 +25,7 @@ right: null, bottom: null, }; + let data = null; let i; let x; let y; @@ -70,10 +71,12 @@ } } - width = bound.right - bound.left; - height = bound.bottom - bound.top + 1; - - const data = context.getImageData(bound.left, bound.top, width, height); + if (bound.top !== null) + { + width = bound.right - bound.left; + height = bound.bottom - bound.top + 1; + data = context.getImageData(bound.left, bound.top, width, height); + } return { height,