Изменение размера изображения на сервере

Я сделал файл, который отвечает за загрузку изображений, и эти изображения затем перемещаются в папку на сервере. Я думаю, что я не могу изменить размер изображения непосредственно в массиве $ _FILES, поэтому я думаю, что я должен изменить размер изображения после того, как на сервере, так что мой вопрос заключается в том, как изменить размеры изображений, находящихся на сервере?

Это часть кода, который у меня есть:

//This is after getting target which is the file saved on the server move_uploaded_file($_FILES[$str]['tmp_name'], $target); scale_image($target); 

Теперь функция scale_image ()

 function scale_image($image) { if(!empty($image)) //the image to be uploaded is a JPG I already checked this { $source_image = imagecreatefromjpeg($image); $source_imagex = imagesx($source_image); $source_imagey = imagesy($source_image); $dest_imagex = 300; $dest_imagey = 200; $image = imagecreatetruecolor($dest_imagex, $dest_imagey); imagecopyresampled($image, $source_image, 0, 0, 0, 0, $dest_imagex, $dest_imagey, $source_imagex, $source_imagey); } } 

Но это, похоже, не работает, оно перемещает файл, но не изменяется.

Solutions Collecting From Web of "Изменение размера изображения на сервере"

PHP встроен в библиотеку GD .

Существует множество функций для управления изображениями, однако нет необходимости повторно изобретать колесо.

Проверьте этот принцип для простого класса манипуляции с изображениями – https://gist.github.com/880506

Вот пример использования …

 $im = new ImageManipulator($_FILES['field_name']['tmp_name']); $im->resample(640, 480); // resize to 640x480 $im->save('/path/to/destination/image.jpg', IMAGETYPE_JPEG); 

Я не создавал файл на сервере, поэтому я сделал move_uploaded_file ($ _ FILES [$ str] ['tmp_name'], $ target); scale_image ($ цель, $ цель);

Теперь функция scale_image ()

 function scale_image($image,$target) { if(!empty($image)) //the image to be uploaded is a JPG I already checked this { $source_image = imagecreatefromjpeg($image); $source_imagex = imagesx($source_image); $source_imagey = imagesy($source_image); $dest_imagex = 300; $dest_imagey = 200; $image2 = imagecreatetruecolor($dest_imagex, $dest_imagey); imagecopyresampled($image2, $source_image, 0, 0, 0, 0, $dest_imagex, $dest_imagey, $source_imagex, $source_imagey); imagejpeg($image2, $target, 100); } } 

Спасибо вам большое, ресурс, который вы мне дали, помог мне создать эту функцию.

Переместите загруженный файл в каталог tmp (используйте tmp_name в $ _FILES для исходного местоположения), прочитайте его с помощью gd, измените размер и сохраните его в конечном каталоге.

http://php.net/manual/en/function.move-uploaded-file.php http://us3.php.net/manual/en/function.imagecreate.php http://us3.php.net/ ручной / EN / function.imagecopyresized.php