HTML5 canvas缩小图像到指定的文件大小?

时间:2019-01-16 14:09:42

标签: image image-processing html5-canvas

我正在使用canvas元素允许用户上传图像(在此示例中为PNG,但也可以是JPEG),然后将其发送到服务器。在将文件发送到服务器之前,我需要确保文件大小不超过10Mb-如果是,请重新缩放。

我认为,如果找出比率,新文件的大小不同于MAX,则可以缩小图像的宽度和高度,并期望文件大小以相同的比率变化...但是事实并非如此!

例如 Max_filesize = 10,000,000

当前图像规格:

X(5400px)
Y(2700px)
Area (X*Y = 14,580,000)
datasrc string length (14,787,751)

比例比例:SQRT(10,000,000 / 14,580,000)= 0.82

如果我随后使用该比例缩放图像宽度和高度,我将得到:

X(4441px) 
Y(2220px)
Area (X*Y = 9,859,020) <= CORRECT
datasrc string length (12,215,917) <= INCORRECT - I expect this to be sub 10Mb :(

我想念什么?

0 个答案:

没有答案