Php 如何在YII中调整图像的大小?

Php 如何在YII中调整图像的大小?,php,yii,Php,Yii,当我尝试加载图像并调整其大小时: $image = Yii::app()->image->load($path); $image->resize(400, 100); 我得到这个错误 Property "CWebApplication.image" is not defined. 我已尝试在配置文件中放置以下内容: 'image'=>array( 'class'=>'application.extensions.image.CImageCom

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

$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 any ideas中调整图像的大小?是否有任何本机类来处理图像?

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

这应该起作用:

return [
    // ....
    'components' => [
        'image' => [
            'class' => 'application.extensions.image.CImageComponent',
            // GD or ImageMagick
            'driver' => 'GD',
            // ImageMagick setup path
            'params' => ['directory' => '/opt/local/bin'],
        ],
    ]
];

配置应用程序组件时,将它们放在
components
config部分,似乎您将映像组件放错了位置

这应该起作用:

return [
    // ....
    'components' => [
        'image' => [
            'class' => 'application.extensions.image.CImageComponent',
            // GD or ImageMagick
            'driver' => 'GD',
            // ImageMagick setup path
            'params' => ['directory' => '/opt/local/bin'],
        ],
    ]
];

我认为现在回应太晚了。但它会帮助其他人。我也遇到了类似的问题。我用下面的方法修复了它

从您的问题中,我了解到您正在使用名为yii的扩展。在扩展本身的页面中,他们给出了一个名为的描述。我跟着它去修理

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

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

可能是你在下面这一部分犯了错误。您需要在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();

我认为现在回应太晚了。但它会帮助其他人。我也遇到了类似的问题。我用下面的方法修复了它

从您的问题中,我了解到您正在使用名为yii的扩展。在扩展本身的页面中,他们给出了一个名为的描述。我跟着它去修理

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

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

可能是你在下面这一部分犯了错误。您需要在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();

必须在配置文件“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');
使用流动延伸

必须在配置文件“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');
使用流动延伸

别名“application.extensions.image.CImageComponent”无效。确保它指向现有的PHP文件并且该文件可读。-现在我明白了(这是常见的错误,请参阅从未使用过的用户
[[]
声明array()@user1954544请解释您的声明(这是错误的)。这是PHP5.4中引入的新语法,非常好。使用
[]
比用
array
单词乱码要干净得多。老实说,在写了多年这篇血腥的
array
word之后,php的伙计们终于决定添加大多数语言都能识别的语法,所以我们可以使用它,所以就使用它吧。另外请注意,php 5.3不再受支持,5天前是最后一个版本。Alias“application.extensions.image.CImageComponent”无效。请确保它指向一个现有的PHP文件并且该文件可读。-现在我得到了这个…:(这是一个常见的错误,请参阅此never user
[]
以声明数组()@user1954544请解释您的声明(这是错误的)。这是PHP5.4中引入的新语法,非常好。使用
[]
比用
array
words乱码要干净得多。老实说,在写了多年这个血腥的
array
word之后,php的伙计们终于决定添加大多数语言都能识别的语法,所以我们可以使用它,所以就使用它吧。另外请注意,php 5.3不再受支持,5天前是最后一个版本。