Я использую элемент 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 :(
Чего мне не хватает?