用php和zend裁剪后如何重新保存图像?

Posted

技术标签:

【中文标题】用php和zend裁剪后如何重新保存图像?【英文标题】:how to re-save image after cropping with php and zend? 【发布时间】:2012-04-16 20:37:40 【问题描述】:

我有一个将我的图片保存到磁盘的功能:

public function uploadToDiskMulty($folderPath, $filename)

    // create the transfer adapter
    // note that setDestiation is deprecated, instead use the Rename filter
    $adapter = new Zend_File_Transfer_Adapter_Http();
    $adapter->addFilter('Rename', array(
            'target'    => $filename,
            'overwrite' => true
    ));

    // try to receive one file
    if ($adapter->receive($folderPath)) 
        $message = "success";
     else 
        $message = "fail";
    

    return $message;
 

然后我有一个裁剪图像的功能

public function uploadCroppedImage($image, $x, $y, $w, $h)

    $targ_w = 200;
    $targ_h = 300;
    $jpeg_quality = 90;


    $img_r = imagecreatefromstring(file_get_contents($image));
    $dst_r = ImageCreateTrueColor( $targ_w, $targ_h );

    imagecopyresampled($dst_r, $img_r, 0, 0, $x, $y, $targ_w, $targ_h, $w, $h);

$image = http://test.com/test_folder/example.jpg

$folderPath = /var/www/media/test_folder/

还有$filename = example.jpg

我的问题是我需要裁剪后的图像路径,因此我可以通过 uploadToDiskMulty 函数运行它。

imagecopyresampled 返回真或假。

有什么想法吗?

谢谢

【问题讨论】:

【参考方案1】:

您可以使用imagejpeg() 输出它,或者您需要的等效类型。

imagejpeg($dst_r, 'somepath/someimg.jpg');

【讨论】:

它会保存它吗?如果我通过我的服务器路径/var/www/media/... 你可以使用任何你想要的路径。 嗯,我有这个imagejpeg($dst_r, $image, 90);,但它似乎没有覆盖原始文件

以上是关于用php和zend裁剪后如何重新保存图像?的主要内容,如果未能解决你的问题,请参考以下文章

使用 PHP 保存裁剪后的图像

如何使用原始文件名保存裁剪的图像?

我只想将裁剪后的图像保存到图库中。但它保存了原始的完整图像。如何只保存裁剪的图像?

如何保存裁剪的图像

使用 Jcrop 裁剪并使用 PHP GD 保存时如何获取可变宽度和高度

捕获和裁剪图像并保存裁剪的图像