[bug] specify the maximum size of Canvas supported by each browser #112
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Purpose
Each browser limits the maximum size of a Canvas object.
So, need to resize the image to less than the maximum size that each browser restricts.
(However, the
proportion/ratio
of the image remains.)you can test it using image
Cause
If
the maximum size of Canvas
supported by abrowser that does not support OfflineCanvas
is exceeded,canvas.toDataURL()
returns"data:,"
.browser-image-compression/lib/utils.js
Lines 161 to 164 in 39665bd
Therefore, the error
i[0].match(/:(.*?);/)[1]
ingetFilefromDataUrl()
.browser-image-compression/lib/utils.js
Lines 63 to 69 in 39665bd
So when we create an
Image object
,if we set
width
,height
withinthe maximum size of Canvas supported by the browser
,we can prevent not only
Black image
, but alsoi[0].match(/:(.*?) ;/)[1]
errors.( the
proportion/ratio
of the image remains.)How to
maximum size of canvas supported by the browser
when it is first created withImage Objects
.bowser
dependency to obtain each browser name.Releated issue