Я хотел бы изменить размер изображения на стороне сервера с помощью PHP перед загрузкой и перед тем, как он будет представлен пользователю. Это невозможно сделать во время загрузки, так как изображения постоянно меняются и загружаются с использованием FTP. Я использую следующий код для представления изображения
header('Content-Type: image/jpeg');
readfile($img . $filename . "." . $ext);
Возможно ли это сделать через PHP, поскольку я хотел бы уменьшить размер загружаемого изображения; в идеале без записи на диск (так как файл постоянно доступен пользователям).
Спасибо за вашу помощь.
Если у вас есть GD библиотека установлена, вы можете делать то, что вам нужно, без записи на диск.
<?php
$filename = 'images/picture.jpg';
//the resize will be a percent of the original size
$percent = 0.5; // 50%
// Content type
header('Content-Type: image/jpeg');
// Get new sizes
list($width, $height) = getimagesize($filename);
$newwidth = $width * $percent;
$newheight = $height * $percent;
// Load
$thumb = imagecreatetruecolor($newwidth, $newheight);
$source = imagecreatefromjpeg($filename);
// Resize
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);imagejpeg($thumb); // this will output image data
// if you need much lower size of image try experimenting with quality param
// imagejpeg($thumb,$saveToFile=null, $quality=70);
imagedestroy($thumb); //free some memory
Других решений пока нет …