How can I get the size of the newly created new Image()
in bytes if this image's src
is base64
data image?
I have such coffeescript code:
# This string is received after some original image preprocessing
base64String = "data:image/jpeg;base64......"
newImageObj = new Image()
newImageObj.src = base64String
newImageObj.onload = ->
console.log "Resized image width is " + this.width
console.log "New file size in bytes is " + newImageObj.fileSize
The output is always like this:
Resized image width is 500
New file size in bytes is undefined
This newImageObj.fileSize
is always undefined
.
Here is the algorithm to find file size from base64 string:
base64String = "data:image/jpeg;base64......";
var stringLength = base64String.length - 'data:image/png;base64,'.length;
var sizeInBytes = 4 * Math.ceil((stringLength / 3))*0.5624896334383812;
var sizeInKb=sizeInBytes/1000;