Используете ли вы Doka ? Я думаю, что Doka позволяет вам установить трансформации на стороне клиента, и тогда сервер выполнит их - хотя я точно не знаю. Другой альтернативой является написание простого php-скрипта, который будет выполнять сжатия для вас, поскольку вы действительно хотите загружать только одно изображение.
Может быть, что-то вроде следующего для сжатия изображений на сервере, если вы хотите сделать это самостоятельно?
function compressImage($source, $destination, $newWidth = 384) {
// get image & details
$info = getimagesize($source);
$width = $info[0];
$height = $info[1];
$ratio = $width / $height;
// calculate new heights
$newHeight = $newWidth / $ratio;
// create temp blank image
$compressedImg = imagecreatetruecolor($newWidth, $newHeight);
if ($info['mime'] == 'image/jpeg') {
$image = imagecreatefromjpeg($source);
imagecopyresampled($compressedImg, $image, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height);
// adjust quality if needed
imagejpeg($compressedImg, $destination, 75);
return true;
} elseif ($info['mime'] == 'image/png') {
$image = imagecreatefrompng($source);
imagecopyresampled($compressedImg, $image, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height);
// adjust compression if needed (0 not compressed, 9 highest compression)
imagepng($compressedImg, $destination, 9);
return true;
}
return false;
}
compressImage('/path/to/image/filename.jpg', '/path/to/image/thumbnails/filename.jpg');
Отказ от ответственности - я не проверял этот код