PHP-ImageCopyResampled存在问题

PHP-ImageCopyResampled存在问题,php,image-manipulation,gd,Php,Image Manipulation,Gd,这是我第一次使用ImageCopyResampled函数。我只是按照程序中编写的代码进行操作。当我运行代码时,似乎没有错误。问题是我的代码基本上只是复制了原始图像,没有遵循函数中传递的参数中定义的维度。下面是我的代码: public static function uploadFile($filename, $x_dimension, $y_dimension, $width, $height){ $file = DOCROOT . "uploads/temp/".$

这是我第一次使用ImageCopyResampled函数。我只是按照程序中编写的代码进行操作。当我运行代码时,似乎没有错误。问题是我的代码基本上只是复制了原始图像,没有遵循函数中传递的参数中定义的维度。下面是我的代码:

    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;
}
此函数仅复制源文件,不进行裁剪。我错过了什么


顺便说一句,我用的是Kohana3。谢谢。

您没有将
$trgt\u img
保存到文件中,因此脚本结束时剪切的图像将丢失

您需要使用(或任何您想要写入的格式)写出数据


Pekka的答案是正确的,但是保存为的文件名不正确,应该是$trgt_file而不是$filename

建议,而不是答案,但你应该研究ImageMagick——它为你提供了一些优秀的编辑工具。
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