HTML5 холст уменьшить изображение до указанного размера файла? - PullRequest
0 голосов
/ 16 января 2019

Я использую элемент canvas, чтобы позволить пользователям загружать изображение (в этом примере PNG, но также может быть JPEG), которое я затем отправляю на сервер.Перед отправкой файла на сервер мне нужно убедиться, что размер файла не превышает 10 МБ, и, если он есть, изменить его.

Я подумал, что если я выясню соотношение,чем новый размер файла отличается от 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 :(

Чего мне не хватает?

...