Intereting Posts
Асинхронный запрос Yii Арифметическая операция в конкатенации строк без круглых скобок вызывает странный результат неожиданный T_VARIABLE, ожидающий T_FUNCTION xampp не находит мою домашнюю папку –Mac os x Динамический ряд строк при извлечении записей из базы данных Нарушение ограничения целостности: 1048 Имя столбца не может быть нулевым Создать Captcha Image PHP выполнение связанных с датой времени операций в PHP REST GET с игнорируемым параметром, PHP Symfony 3 Mpdf XAMPP / MySQL: не удалось открыть файл таблицы таблиц с одной таблицей. \ Mysql \ innodb_index_stats.ibd после перезагрузки MySQL лучший способ определить количество SMS, необходимых для отправки текста PHP / PDO: Подготовленные утверждения не работают при создании таблицы? Есть ли способ PHP для проверки синтаксиса SQL без его выполнения? Простой «возврат» в функции PHP просто заканчивает работу преждевременно? Извлечь слова из строки с preg_match_all

PHP – проблема с ImageCopyResampled

Это мой первый раз, используя функцию ImageCopyResampled. Я просто выполнил код, написанный в руководстве по PHP . Когда я запускал код, ошибок не было. Проблема в том, что мой код просто копирует исходное изображение и не соответствует размерам, как это было определено в параметрах, переданных в функции. Ниже мой код:

public static function uploadFile($filename, $x_dimension, $y_dimension, $width, $height){ $file = DOCROOT . "uploads/temp/".$filename; $trgt_file = DOCROOT . "uploads/images/thumbs/".$filename; if(is_file($file) AND file_exists($file)): $trgt_w = 198; $trgt_h = 130; if(copy($file, $trgt_file)): $src_img = imageCreateFromJpeg($file); $trgt_img = imageCreateTrueColor($trgt_w, $trgt_h); imageCopyResampled($trgt_img, $src_img, 0, 0, $x_dimension, $y_dimension, $trgt_w, $trgt_h, $width ,$height); unlink($file); endif; endif; } 

Эта функция просто скопирует исходный файл и не происходит обрезка. Что я упустил?

BTW, я использую kohana 3. Спасибо.

Related of "PHP – проблема с ImageCopyResampled"

Вы не сохраняете $trgt_img в файл, поэтому обрезанное изображение теряется при завершении скрипта.

Вам нужно записать данные с помощью imageJPEG() (или любого imageJPEG() формата, который вы хотите записать).

 imageCopyResampled($trgt_img, $src_img, 0, 0, $x_dimension, $y_dimension, $trgt_w, $trgt_h, $width ,$height); imagejpeg($trgt_img, $filename, 90); // 90 is for quality - 75 is the default 

Ответ Пекки верен, но имя файла, которое сохраняется как неверное, должно быть $ trgt_file вместо $ filename;