0

フルサイズの画像ポスターをファイルの3つの小さなバリエーションにサイズ変更しようとしています。最初にフルサイズのポスターを保存し、次にそのパスを使用して小さいポスターを作成します。問題は、サイズが正しくないことです。すべての画像の一般的な構成情報を含む$conf配列があり、次に特定の変更(サイズなど)を含む各画像の$conf配列があります。すべての新しいinitの前にlibをクリアします。

// Config for all images
$conf['source_image'] = $file_path;
$conf['quality'] = 80;
$conf['maintain_ratio'] = true;
$conf['master_dim'] = 'auto';

// Small
$conf['new_image'] = 'img/movie_images/posters_small/' . $file_name;
$conf['height'] = 75;
//$conf['width'] = 55;

$this->image_lib->initialize($conf);
$this->image_lib->resize();
$this->image_lib->clear();
//unset($conf['width']);

// Medium
$conf['new_image'] = 'img/movie_images/posters_medium/' . $file_name;
$conf['height'] = 200;

$this->image_lib->initialize($conf);
$this->image_lib->resize();
$this->image_lib->clear();

// Big
$conf['new_image'] = 'img/movie_images/posters_big/' . $file_name;
$conf['height'] = 300;

$this->image_lib->initialize($conf);
$this->image_lib->resize();
$this->image_lib->clear();

コードにエラーがありますか?ここで別の質問で誰かがアドバイスしたようにエラーを出力しようとしましたが、それも何も表示されませんでした。それが実際にどのように機能するのかわかりません。「master_dim」をautoに設定すると、最初の(小さい)画像は正しい高さになりますが、デフォルトの幅(実際には本当に広い)になります。master_dimを"width"に設定すると、小さい画像は同じままです(実際には幅が広いですが、高さは正しいです)。master_dimを"height"に設定すると、すべて正しい高さになりますが、小さい方はまだ非常に幅が広​​いです。

何か案は?

4

2 に答える 2

0

画像ライブラリをhttp://thephpcode.com/blog/codeigniter/gradient-image-library-for-codeigniterからダウンロードして、正しい幅とサイズに収まるように画像を変換できます。

于 2013-02-16T11:59:48.233 に答える
0

コードでわかるように、小さな画像の幅を試して正しいサイズを取得しようとしましたが、機能しませんでした。

master_dimをheightに設定し、小さい画像の幅も手動で設定すると、希望どおりに機能します。

于 2012-06-25T14:13:35.370 に答える