2

当我尝试加载和调整图像大小时:

$image = Yii::app()->image->load($path);
$image->resize(400, 100);

我收到这个错误

Property "CWebApplication.image" is not defined.

我试过在配置文件中放这个:

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

无论如何我收到一个错误,如何在 yii 中调整图像的大小有什么想法?,是否有任何原生类可以处理图像?

4

3 回答 3

3

配置应用程序组件时将它们放在components配置部分,似乎您将图像组件放在错误的位置。

这应该有效:

return [
    // ....
    'components' => [
        'image' => [
            'class' => 'application.extensions.image.CImageComponent',
            // GD or ImageMagick
            'driver' => 'GD',
            // ImageMagick setup path
            'params' => ['directory' => '/opt/local/bin'],
        ],
    ]
];
于 2013-09-25T16:11:25.873 回答
1

我认为它的反应为时已晚。但它会帮助别人。我遇到了类似的问题。我通过以下方法修复了它。

根据您的问题,我了解到您在 yii 中使用了一个名为“image”的扩展名。在扩展程序本身的页面中,他们给出了一个名为“用法”的描述。我按照那个来修复。

我在使用文档中添加了一些注释,并在下面添加了可能导致该问题的注释。

以下代码是配置文件(config/main.php)中的组件注册:

'import'=>array(
    ...
    'application.helpers.*',
    ...
),

可能是您在以下部分中犯了错误。您需要在 config/main.php 文件的 components 部分中注册“image”组件。

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

请参见以下代码示例:

$image = Yii::app()->image->load('images/test.jpg');
$image->resize(400, 100)->rotate(-45)->quality(75)->sharpen(20);
$image->save(); // or $image->save('images/small.jpg');//You missed this line

(或者)你也可以像下面这样使用,而无需在 config/main.php 文件中注册图像组件。

Yii::import('application.extensions.image.Image');
$image = new Image('images/test.jpg');
$image->resize(400, 100)->rotate(-45)->quality(75)->sharpen(20);
$image->render();
于 2015-02-05T05:41:44.790 回答
0

您必须在配置文件“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 = Yii::app()->image->load('images/test.jpg');
$image->resize(400, 100)->rotate(-45)->quality(75)->sharpen(20);
$image->save(); // or $image->save('images/small.jpg');

使用流动扩展 图像扩展

于 2016-06-01T06:17:00.997 回答