在上传之前获取toDataUrl()图像的大小?

时间:2011-10-16 10:01:40

标签: javascript html5-canvas

我使用画布来处理图像,裁剪,调整大小和优化,然后再上传它们。

我使用toDataUrl()方法获取图像数据一旦被操作。我有这个基本64位编码的PNG网址。

我知道图像的文件大小,但不确定如何在裁剪后获取图像的文件大小等...不上传图像。

到目前为止,获取数据网址的长度似乎与图像大小无关......我不确定如何获取我要查找的信息:图像数据的文件大小操作后,从基础64编码的PNG网址。

此时上传图像有点挫败了目的,因为我需要在客户端完成所有这些操作。我只需要在上传之前确保图片为< max

对任何地方的解释似乎都很少,任何信息都会有很大的帮助。

1 个答案:

答案 0 :(得分:4)

.toDataURL返回画布的基本64位编码PNG图像,如:

data:image/png;base64,iVBORw0KG...

基础64编码部分在逗号之后开始,即在位置22。所以你需要做的就是解码字符串,从索引22开始:http://jsfiddle.net/eGjak/187/

var decoded = atob(cv.toDataURL().substr(22)); // atob decodes base 64

alert(decoded.length); // length of png file