0

resize() を使用してサムネイルのサイズを変更しています。私のソース画像は 1024 * 768 です。これは私の設定です

 $demo= array(
                  'source_image' => $x['full_path'],
                  'new_image' => $this->image,
                  'maintain_ratio' => true,
                  'create_thumb' => true,
                  'width' => 192,
                  'height' => 92
                );

しかし、画像のサイズが 123 * 98 に変更されています。幅の値を使用していないのはなぜですか?

4

1 に答える 1

2

このオプションを有効にmaintain_ratioすると、CI は「元の縦横比を維持しながら、できるだけターゲットの幅と高さに近い」サムネイルを作成しようとします。

あなたの場合、寸法が 1024x768 の画像があり、アスペクト比は 1.33854 (1024/768) です。

これは、指定した幅と高さの値を使用した 192x143 のサムネイルまたは 123x92 のサムネイルに対応します。

CI は、123x92 がより適切であると判断しました (おそらくサムネイルの領域に基づく)。

なぜ 123x98 なのですか? おそらく、サイズ変更アルゴリズムのアーティファクトです (数学の四捨五入エラー?)。

より正確な答えを得るには、CI コードの詳細を確認する必要があります。

脚注
CI での画像のサイズ変更についていくつかの議論があり、モジュールにはいくつかの癖があります。

[quote author="Saete" date="1346125636"]You will not beleive me, 
y had the same problem and y changed the order of configuration parameters 
with the maintain_ratio = true, and it worked :S
I needed to adjust to height:

Didn't work:
$config['width'] = 126;
$config['height'] = 84;
$config['maintain_ratio'] = TRUE;

Worked!
$config['height'] = 84;
$config['width'] = 126;
$config['maintain_ratio'] = TRUE;

Some years later, but it may help someone...[/quote]

明らかに、パラメータの順序が違います (確かにバグです)。
参照: http://ellislab.com/forums/viewthread/119169/#594586

于 2013-03-19T18:11:32.690 に答える