怎样在CI中生成缩略图且不变形?
如题:怎样在CI中生成缩略图且不变形?利用CI的生成缩略图功能,要么可以比例缩放,要么就是裁剪,请教高手,怎样写才能使生成的缩略图能比例缩小而又不变形呢?
我的代码如下,请高手指点:
function image_do($width,$height){
$this->load->library('image_lib');
$config['image_library'] = 'GD2';
$config['source_image'] = 'uploads/ri.gif';
$config['create_thumb'] = TRUE;
$config['maintain_ratio'] = TRUE;//使图像保持原始的纵横比例
$config['master_dim'] = 'width';
$config['width'] = $width;
$config['height'] = $height;
$config['x_axis'] = '100';//将图片左边的100像素裁去
$config['y_axis'] = '100';
//$this->load->library('image_lib', $config);
$this->image_lib->initialize($config);
if(!$this->image_lib->resize()){
echo $this->image_lib->display_errors();
}
else{
echo "it successes !";
}
} 等比例缩小,你需要自己计算长宽。
这是个数学问题 -_- 回复 2# Hex
我这里是要生成固定的缩略图呢,假如为100*90,等比例缩小$this->image_lib->resize()这个就可以做到的,问题是用户上传的图片是各种尺寸的,都要生成100*90的缩略图,且不能变形。
我个人想法是以缩略图的宽(这里是100)或高(90)为中心,会生成一个固定宽或高的缩略图,假如生成后是100*110,那么高度会多出20像素,然后再通过
$this->image_lib->crop()来裁剪高度,使最终为100*90,但不知怎么去写,请指点一下? 裁剪过的永远也不会是原图了。
那你都有步骤了,不就可以实现了吗? 维持比例不变,进行缩小就可以了,
指定尺寸,CI会自动给图填充黑边(或者透明边,具体忘了)
$config['maintain_ratio'] = true;
$config['width'] = 100;
$config['height'] = 130;
页:
[1]