PHP - проблема с ImageCopyResampled - PullRequest
       9

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

2 голосов
/ 16 февраля 2010

Я впервые использую функцию 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;
}

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

Кстати, я использую кохану 3. Спасибо.

Ответы [ 2 ]

1 голос
/ 16 февраля 2010

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

Вам необходимо записать данные, используя 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
0 голосов
/ 16 февраля 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...