我在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;
}
然而,我想要实现的目标,无论是什么形象,风景或肖像。大小。裁剪图像以设置尺寸。
目前,在以这种方式裁剪后,图像会以不同大小的拇指形式出现,主要是如果是横向或纵向。然而,如果您进入this等网站,您会看到所有拇指的比例,宽度和高度完全相同。
我该如何做到这一点?
干杯。
修改
完成此操作的优秀教程可以在这里找到:
我正在尝试裁剪并按比例调整CI中的大小,如下所示:
好的,然后你可以先将图像裁剪为方形图像 调整。看看这里:stackoverflow.com/a/3327424/844726 - swatkins 6月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
我收到服务器错误,我猜这个脚本没有执行。
答案 0 :(得分:1)
您的问题是$config['maintain_ratio'] = TRUE;
声明。这告诉系统将宽度与高度的比例保持为新宽度或高度的比例(基于哪个是较大的值)。
因此,如果图像是纵向的,它将调整为100px高,但宽度将与原始图像比例成比例。
如果您希望图像为100px X 100px,则需要设置:
$config['maintain_ratio'] = FALSE;
答案 1 :(得分: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;
修复拇指高度并保持纵横比,this post显示调整大小的示例和演示。