1

CodeIgniterのクラスを使用してimage_lib画像のサイズを変更していますが、正常に機能します。これが私のコードです:

function resizeImage($source_image,$new_image,$width=100,$height=100){
       $config['image_library'] = 'gd2';
       $config['source_image']  = $source_image;
       $config['new_image'] = $new_image;
       $config['maintain_ratio'] = TRUE;
       $config['width']  = $width;
       $config['height']    = $height;
       $this->image_lib->initialize($config);

       if($this->image_lib->resize()) return true;
       else return false;
}

しかし、私が達成しようとしていることは、それがどんなイメージであろうと、風景であろうと、ポートレートであろうと関係ありません。大きな小。画像は、サイズを設定するためにトリミングされます。

現在、このようにトリミングされた後、主に横向きまたは縦向きの場合、画像はさまざまなサイズの親指として表示されます。一方、このようなWebサイトにアクセスすると、すべての親指がまったく同じ比率、幅、高さであることがわかります。

どうすればこれを達成できますか?

乾杯。

編集

これを正確に行うための優れたチュートリアルは、次の場所にあります。

CodeIgniter.tv


次に示すように、CIで親指をトリミングして比例的にサイズ変更しようとしています。

次に、最初に画像を正方形の画像にトリミングしてから、サイズを変更します。こちらをご覧ください:stackoverflow.com/a/3327424/844726 –swatkins6月26日13:33

function resizeImg(){
   $source_image = base_url().'pic2.jpg';
   $config['image_library'] = 'gd2';
   $config['source_image']  = $source_image;
   $config['new_image'] = $new_image;
   $config['maintain_ratio'] = TRUE;
   $config['x_axis'] = '10';
   $config['y_axis'] = '10';
   $config['width']  = $width;
   $config['height']    = $height;
   $this->image_lib->initialize($config);
}

次のようなスクリプトを実行すると、次のようになります。

http://localhost/test/index.php/cronJobs/resizeImg

サーバーエラーが発生しました。スクリプトが実行されなかったと思います。

4

2 に答える 2

1

あなたの問題は$config['maintain_ratio'] = TRUE;声明です。これは、幅と高さの比率を新しい幅または高さ(どちらが大きい方の値に基づくか)に対する比率として維持するようにシステムに指示します。

したがって、画像が縦向きの場合、高さは100ピクセルにサイズ変更されますが、幅は元の画像の比率に比例します。

画像を100pxX100pxにする場合は、次のように設定する必要があります。

$config['maintain_ratio'] = FALSE;
于 2012-06-25T21:35:14.530 に答える
0

BBCのような大きなサイトの場合、画像を手動でトリミング/サイズ変更する必要があると思います。CodeIgniterを使用すると、次のように設定できます。

$config_resize['maintain_ratio'] = TRUE;
$config_resize['master_dim'] = 'height';
$config_resize['quality'] = "100%";
$config_resize['source_image'] = './' . $user_upload_path . $file_name;

$config_resize['height'] = 64;
$config_resize['width'] = 1;

親指の高さを固定し、アスペクト比を維持するために、この投稿ではサイズ変更の例とデモを示しています。

于 2014-10-26T03:17:07.823 に答える