Вы можете полностью изменить размер до определенного размера, используя изменение размера, поэтому, если вы знаете, что определенное количество пикселей будет в пределах этого размера, вы можете установить размер в пикселях. Я использовал 100x100
для справки.
$resize = new ResizeImage('image.png');
$resize->resizeTo(100, 100, 'exact');
$resize->saveImage('/resized/image.png');
Используя эту теорию, вы можете использовать тот же подход, и если изображение уже имеет этот размер или меньше, вы можете изменить его размер.
if ($file_size < 5000) {
$resize = new ResizeImage('image.png');
$resize->resizeTo(100, 100, 'exact');
$resize->saveImage('/resized/image.png');
} else {
// Error
}
Значит, вы можете запустить его вот так
// Upload Image
// Resize image
$resize = new ResizeImage('image.png');
$resize->resizeTo(100, 100, 'exact');
$resize->saveImage('/resized/image.png');
// Save image
// Open saved image
// Check image size
// Confirm or resize progressively smaller.
Надеюсь, свойство resize пригодится. Вы не указали код в своем вопросе, но я думаю, что лучшим подходом было бы проверить размер и сохранить, если все в порядке, тогда, если нет, вы снова измените размер и проверьте еще раз. Очевидно, вам придется делать это до тех пор, пока он не достигнет правильного размера, чтобы время выполнения могло занять больше времени. Я не могу придумать прямой способ сжать изображение с помощью функции php, если вы не сжали изображения вместо изменения их размера.