开发者

PHP - Problem with ImageCopyResampled

It's my first time using the function ImageCopyResampled. I just followed the code written in th开发者_运维问答e PHP manual. There seemed to be no errors when I ran the code. The problem is my code just basically copies the original image and did not follow the dimensions as it was defined in the parameters passed in the function. Below is my code:

    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;
}

This function just copy the source file and no cropping happened. What did I miss?

BTW, Im using kohana 3. Thanks.


You are not saving $trgt_img to a file, so the cropped image gets lost when the script ends.

You need to write out the data using imageJPEG() (or whatever format you want to write to).

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


Pekka's answer is correct, but the filename that is being saved as is incorrect, should be $trgt_file instead of $filename;

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜