在 Yii 中使用 Imagick 和 GD

Posted

技术标签:

【中文标题】在 Yii 中使用 Imagick 和 GD【英文标题】:Use Imagick and GD in Yii 【发布时间】:2015-06-24 09:34:33 【问题描述】:

我使用的是 Yii 1.1.6 我编写了一个使用 GD 和 Imagick php 扩展的类。在我的,我声明了一个变量

class Myclass()
    public function __construct()
    
         $imagick = new Imagick();
    
    // something more

我把我的类放到组件文件夹中。

在控制器中,像往常一样,

$image = new MyClass();

但是 yii 通知我错误 500:include(Imagick.php): failed to open stream: No such file or directory。 我理解这意味着 Yii 无法识别组件文件夹中的类和文件 Imagick?????

对我的问题有什么想法吗? 请教我如何 wright 方式。

P.s:我查到http://www.yiiframework.com/extension/image/,但是,如果我用那种方式,我会重写我的类,它只是用于Yii,我想将我的类用于一些项目。

更新:对不起,我的愚蠢,我在家里的 Mac 和服务器上仍然可以正常工作,但在办公室计算机上,我没有正确配置这些扩展。

【问题讨论】:

显然您没有在 PHP 中加载 Imagick 扩展。您可能应该安装它并确保它已加载。 @Danack 谢谢,我确实配置了我的 xampp,它再次运行良好。 【参考方案1】:

你没有安装 php5-imagick 包。你可以在php.net阅读它

安装后您的代码将完美运行。

在 Ubuntu 上:

sudo apt-get install php5-imagick
sudo service apache2 reload

【讨论】:

【参考方案2】:

您必须在 main.php “配置文件”中添加 ImageMagick 设置路径

这里是 windows 的示例

'image'=>array(
        'class'=>'application.extensions.image.CImageComponent',
        // GD or ImageMagick
        'driver'=>'GD',
        // ImageMagick setup path
        'params'=>array('directory'=>'D:/Program Files/ImageMagick-6.4.8-Q16'),
    ),

Linux

'image'=>array(
        'class'=>'application.extensions.image.CImageComponent',
        // GD or ImageMagick
        'driver'=>'GD',
        // ImageMagick setup path
        'params' => array('directory' => '/usr/bin'),
    ),

使用流动的扩展 image extension

【讨论】:

以上是关于在 Yii 中使用 Imagick 和 GD的主要内容,如果未能解决你的问题,请参考以下文章

在文件 PSD 中使用 imagick 和 php

如何在 Imagick 中设置修剪颜色?

有没有办法用 PHP 和 Imagick 找到被黑色边框包围的特定像素区域?

使用 Imagick 转换透明 PDF 文件

imagick没有检测到inkscape

Mac上xampp上的Imagick:无法使用image.so