Codeigniterがスマートカット画像を実現する方法
1329 ワード
1024*768サイズの写真を240*240サイズに切り取り、歪んでいないように裁断し、できるだけ写真のテーマの意味を残します。
私が使用した方法:
1.まず画像などの割合を裁断できる大きさに縮小します。
幅の広い画像であれば、高さなどの比率で高さ=240 pxまで拡大縮小し、幅より狭い画像(幅より高い高さ)は幅などの比率で拡大縮小します。
2.長さと幅で中央に切り取ります。
縮小した画像の中間部分を保持します。
私が使用した方法:
1.まず画像などの割合を裁断できる大きさに縮小します。
幅の広い画像であれば、高さなどの比率で高さ=240 pxまで拡大縮小し、幅より狭い画像(幅より高い高さ)は幅などの比率で拡大縮小します。
2.長さと幅で中央に切り取ります。
縮小した画像の中間部分を保持します。
$this->load->library('image_lib');
list($width, $height) = getimagesize("upload/123.jpg");
$config['image_library'] = 'gd2';
$config['source_image'] = 'upload/123.jpg';
$config['maintain_ratio'] = TRUE;
if($width >= $height)
{
$config['master_dim'] = 'height';
}else{
$config['master_dim'] = 'width';
}
$config['width'] = 240;
$config['height'] = 240;
$this->image_lib->initialize($config);
$this->image_lib->resize();
$config['maintain_ratio'] = FALSE;
if($width >= $height)
{
$config['x_axis'] = floor(($width * 240 / $height - 240)/2);
}else{
$config['y_axis'] = floor(($height * 240 / $width - 240)/2);
}
$this->image_lib->initialize($config);
$this->image_lib->crop();