繁体   English   中英

PHP-ImageCopyResampled问题

[英]PHP - Problem with 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;
}

此功能仅复制源文件,没有裁剪发生。 我错过了什么?

顺便说一句,我正在使用kohana3。谢谢。

您没有将$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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM