yii imagemagick php5.4到php7

时间:2016-10-06 11:35:48

标签: php yii imagemagick

我们一直在Yii中使用imagemagick几年来让人们在网上“装饰”气球。在php5.4上运行,这一直都很好用。这是一个“气球”的例子 balloon with working decorator 由于各种原因,我们最近将网站升级为在php7上运行。可悲的是,这意味着imagemagick不像过去那样工作。请参阅此链接以获取示例: balloon without working decorator 我不会说它被打破了,因为我不相信它。我想我们需要调整/更新代码。问题是,即使是为我们实施此功能的人也无法解决问题。这是他的话中的问题

  

第一个命令提取图像的非透明部分,第二个命令提取它。根据我的测试,第一个命令(-alpha extract)工作得很好,但是后者(-background COLOR -alpha形状)会为整个图像着色,而不仅仅是提取的部分。

这是我们尝试使用的代码(并且已成功使用php5.4超过两年):

  public function color($params) {

    if (isset($params['pattern'])) {

        $error = exec(escapeshellcmd($this->dir . 'convert' . $this->ext) . ' ' . $this->cmd_image . ' -alpha extract ' . $this->cmd_image);

        $error .= exec(escapeshellcmd($this->dir . 'convert' . $this->ext) . ' ' . $this->cmd_image . ' tile:' . $params['pattern'] . ' \ -compose Multiply  -composite ' . $this->cmd_image);

        $error .= exec(escapeshellcmd($this->dir . 'convert' . $this->ext) . ' ' . $this->cmd_image . ' -background \'' . $params['color_code'] . '\' -alpha shape ' . $this->cmd_image);



        if (!$error) {

            return TRUE;
        } else {

            return FALSE;
        }
    } else {

        $error = exec(escapeshellcmd($this->dir . 'convert' . $this->ext) . ' ' . $this->cmd_image . ' -alpha extract ' . $this->cmd_image);


        $error .= exec(escapeshellcmd($this->dir . 'convert' . $this->ext) . ' ' . $this->cmd_image . ' -background \'' . $params['color_code'] . '\' -alpha shape ' . $this->cmd_image);


        if (!$error) {

            return TRUE;
        } else {

            return FALSE;
        }
    }
}

关于我们在php7中做错了什么的所有建议都感激不尽!

谢谢:)

0 个答案:

没有答案