1

codeigniterの画像ライブラリを使用して画像のサイズを変更しようとしています。ものすごく単純。ただし、画像のサイズは変更されません。さらに、関数はtrueを返し、display_errors()はエラーを表示しません。

これが私が画像ライブラリに渡す私の設定です:

    //A file is uploaded using codeigniter's upload library, then:

    $imgData = $this->upload->data();

    $config['image_library'] = 'GD';
    $config['source_image'] = $imgData['full_path'];
    $config['new_image']    = $imgData['full_path'];
    $config['create_thumb'] = false;
    $config['maintain_ratio'] = true;
    $config['width'] = $newWidth;
    $config['height'] = $newHeight;

設定後の$configのprint_r:

Array
(
    [image_library] => GD
    [source_image] => C:/wamp/www/uploads/8ddbfb2cce91ee314e1f296355aec8c6.jpg
    [new_image] => C:/wamp/www/uploads/8ddbfb2cce91ee314e1f296355aec8c6.jpg
    [create_thumb] => 
    [maintain_ratio] => 1
    [width] => 400
    [height] => 350
)

パスは正しいですが、サイズ変更後も画像は変更されません。

var_dumponを実行すると、次のようになり$this->image_lib->display_errors()ます。

string '' (length=0)

違いがある場合は、Uploadifyを介して画像がアップロードされています。

何が悪いのかについて何か考えはありますか?

4

4 に答える 4

10

C からではなく、ドキュメント ルートからフル パスを設定してみてください。次のコードを試してください。

if($this->upload->do_upload()){
    $this->load->library('image_lib');

    $config_res['source_image'] = 'uploads/'.$this->upload->file_name;
    $config_res['maintain_ratio'] = TRUE;
    $config_res['width'] = $newWidth;
    $config_res['height'] = $newHeight;


    $this->image_lib->initialize($config_res);

    $this->image_lib->resize();

    $this->image_lib->clear();
}
else{
     echo $this->upload->display_errors();
}

この方法では、new_image を指定する必要はなく、上書きされます。

于 2012-06-11T17:16:59.443 に答える
0

create_thumb 関数でこのバグを回避しようとしましたか? & 大文字のブール値?

$config['create_thumb'] = FALSE;
$config['new_image'] = $this->image_thumb_name($img);

参考:https ://stackoverflow.com/a/9040862/1444072

于 2012-06-12T05:28:08.243 に答える
0

create_thumb空の文字列に設定しましたか? CodeIgniter のソースを見ると、このパラメーターをブール値 (デフォルト値) 以外に設定するFALSEと、"true" の値として認識されます。

create_thumb モードの目的は、生成されたファイルの名前に接尾辞を追加することです (デフォルトでは「_thumb」)。http://codeigniter.com/user_guide/libraries/image_lib.html

アップロード フォルダに「filename_thumb.jpg」ファイルがあるのではないでしょうか。もしそうなら、問題が見つかりました;)create_thumbパラメータを削除するか修正してください。


補足として、maintain_ratio = 1機能しません。機能するだけTRUEです。

于 2012-05-26T23:44:46.280 に答える
-1

注: 画像クラスが処理を実行できるようにするには、images.**e ファイルを含むフォルダーに書き込み権限が必要です。

**注: 画像処理では、一部の操作で大量のサーバー メモリが必要になる場合があります。画像の処理中にメモリ不足エラーが発生した場合は、最大サイズを制限するか、PHP のメモリ制限を調整する必要がある場合があります。

于 2012-05-26T22:40:19.833 に答える