使用Imagick将Imagick输出传递给另一个函数(不保存)

时间:2017-08-01 09:23:38

标签: php imagick

我在两个单独的类中有两个函数,都有一些Imagick处理。 我希望第一个Imagick调整图像大小,然后将其发送到另一个Imagick实例,而不将其保存为文件。

在第一类作物中

         function cropimage($inputfile){
          $image = new Imagick($inputfile);
          $image->cropimage($w, $h, $x, $y);
          # and here I wish to return some $image->output???() which let me to use it in second class
         return ????;
         }

在第二节课中调整大小

     function resizeImage(){
      $crop = new crop(); // my first class instance
      $image_to_work = $crop->cropimage($this->image); // output from first class
      $image = new Imagick($image_to_work);

      $image->resizeImage($width, $height);
      $image->writeImage($outputfile);
     }

有什么想法吗? 提前致谢。 干杯

2 个答案:

答案 0 :(得分:0)

图像可以作为变量传递:

function cropimage($inputfile) {
   $image = new Imagick($inputfile);
   $image->cropimage($w, $h, $x, $y);

   return $image;
}

function resizeImageAndSave($image) {
      $image->resizeImage($width, $height);
      $image->writeImage($outputfile);
}

$image = cropimage("./test.png"); // return the image
resizeImageAndSave($image); // pass it into the next function

答案 1 :(得分:-2)

使用会话。

首先,确保每个将使用会话的脚本都有session_start()

然后执行$_SESSION['image'] = $image之类的操作,然后您的下一个脚本就可以访问该会话变量。