我对发布这个问题犹豫不决,因为我在这里看到了几十个,但所有答案都没有用。
所以,我有这个工作代码。它上传图片并获取缩略图。
我允许用户上传950 * 950张照片。我想调整那些照片以适应我的节目页面。
所以,这是调整大小的一部分:
$id=uniqid();
$folder = $this->getDir($id);
$dir=FCPATH.'upload/biz_photos/'.$folder.'/';
if(!is_dir($dir)) {
mkdirs($dir);
}
//handle img
$des_file=$dir.$id.'.jpg';
$thumb_file=$dir.$id.'.thumb.jpg';
$info=getimagesize($org_file);
if($info[0] <= 300) {
copy($org_file,$dir.$id.'.jpg');
}
else
{
$this->load->library('image_lib');
$config['image_library'] = 'GD2';
$config['source_image']=$org_file;
$config['new_image'] = $des_file;
$config['overwrite']= true;
$config['maintain_ratio'] =true;
$config['width'] = 600;
$config['height'] = floor(($info[1]/$info[0])*600);
$this->image_lib->initialize($config);
$this->image_lib->resize();
// handle if there is any problem
if ( ! $this->image_lib->resize()){
echo $this->image_lib->display_errors();
}
}
就像我测试它,并上传950 * 950,然后检查上传的图像,大小仍然 原来的。没有调整大小
答案 0 :(得分:0)
此图像调整大小类易于设置和使用 https://github.com/Nimrod007/PHP_image_resize
答案 1 :(得分:0)
几小时后我确实发现了问题。所以,我有一个缩略图功能,我正在传递原始图片而不是传递新图片(尺寸图片)。
由于
答案 2 :(得分:0)
$this->load->library('image_lib');
$config['source_image']=$org_file;
$config['new_image'] = $des_file;
$config['overwrite']= true;
$config['maintain_ratio'] =true;
$config['width'] = 950;
$config['height'] = 950;
$this->image_lib->clear();
$this->image_lib->initialize($config);
$this->image_lib->resize();