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 で「イメージ」という拡張機能を使用していることがわかります。拡張機能自体のページで、彼らは"usage"と呼ばれる説明をしました。それに従って修正しました。

使用法ドキュメントにいくつかのメモを追加し、その問題につながる可能性がある以下を追加しました。

次のコードは、構成ファイル (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 に答える