kov*_*ack 6 javascript image coffeescript
new Image()如果此图像src是base64数据图像,如何获得新创建的字节大小?
我有这样的coffeescript代码:
# 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
Run Code Online (Sandbox Code Playgroud)
输出总是这样:
Resized image width is 500
New file size in bytes is undefined
Run Code Online (Sandbox Code Playgroud)
这newImageObj.fileSize总是如此undefined.
m e*_*m e 15
这是从 base64 字符串中查找文件大小的算法:
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;
Run Code Online (Sandbox Code Playgroud)
我个人会使用类似的方法来执行上述操作,在数据格式不正确的情况下它将正常工作(例如,缺少“=”,通常无论如何都会正确解码)
new Buffer(base64String, 'base64').length
Run Code Online (Sandbox Code Playgroud)