Вы можете рассчитать примерный уровень информации для изображения, принимая оригинальный размер изображения делится на число пикселей:
info = fileSize/(width * height);
У меня есть изображение, которое 369636 байт и 1200x800 пикселей, поэтому он использует ~ 0,385 байт на пиксель.
У меня меньшая версия, которая составляет 101111 байт и 600x400 пикселей, поэтому она использует ~ 0,4213 байт на пиксель.
Когда вы уменьшаете изображение, вы увидите, что оно обычно содержит немного больше информации на пиксель, в данном случае около 9%. В зависимости от типа изображений и сколько вы уменьшить их, вы должны быть в состоянии вычислить среднее значение для того, насколько информация/пиксель рацион увеличивается (с), так что вы можете рассчитать приблизительный размер файла:
newFileSize = (fileSize/(width * height)) * (newWidth * newHeight) * c
Из этого можно извлечь формулу для того, как большой, вы должны сделать изображение, чтобы достичь определенного размера файла:
newWidth * newHeight = (newFileSize/fileSize) * (width * height)/c
Это поможет вам довольно близко к желаемому размеру файла. Если вы хотите приблизиться, вы можете изменить размер изображения до вычисленного размера, сжать его и вычислить новое значение байта на пиксель из полученного вами размера файла.
Какое изображение? –