Codeigniter实现智能裁剪图片的方法
前端之家收集整理的这篇文章主要介绍了
Codeigniter实现智能裁剪图片的方法,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_502_0@一副1024768大小的图片,裁剪到240240大小,裁剪后不失真,尽可能保留图片主题含义。
@H_
502_0@我使用到的
方法:
@H_
502_0@
1. 先将图片等比例缩略到可以裁剪的大小;
@H_
502_0@如果是宽幅
图片,则按高度等比例缩放到高度 = 240px,窄幅
图片(高度大于宽度)则按宽度等比例缩放;
@H_
5020@2. 按长宽格式居中裁剪;
@H502_0@保留缩略后的
图片中间部分;
@H_
502_0@<div class="codetitle">
<a style="CURSOR: pointer" data="32209" class="copybut" id="copybut32209" onclick="doCopy('code32209')"> 代码如下: <div class="codebody" id="code32209">
$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();