我正在尝试使用codeigniter的图像库来调整图像大小。很简单。但是,图像没有调整大小,而且,函数返回true,display_errors()不会显示任何错误。
这是我传递给图片库的配置:
//A file is uploaded using codeigniter's upload library, then:
$imgData = $this->upload->data();
$config['image_library'] = 'GD';
$config['source_image'] = $imgData['full_path'];
$config['new_image'] = $imgData['full_path'];
$config['create_thumb'] = false;
$config['maintain_ratio'] = true;
$config['width'] = $newWidth;
$config['height'] = $newHeight;
设置后的$ config的print_r:
Array
(
[image_library] => GD
[source_image] => C:/wamp/www/uploads/8ddbfb2cce91ee314e1f296355aec8c6.jpg
[new_image] => C:/wamp/www/uploads/8ddbfb2cce91ee314e1f296355aec8c6.jpg
[create_thumb] =>
[maintain_ratio] => 1
[width] => 400
[height] => 350
)
路径正确,但调整大小后图像保持不变。
在var_dump
上执行$this->image_lib->display_errors()
会返回此信息:
string '' (length=0)
如果有任何不同,则会通过Uploadify上传图片。
关于什么是错的任何想法?
答案 0 :(得分:10)
尝试设置文档根目录的完整路径,而不是C语言。 试试这段代码:
if($this->upload->do_upload()){
$this->load->library('image_lib');
$config_res['source_image'] = 'uploads/'.$this->upload->file_name;
$config_res['maintain_ratio'] = TRUE;
$config_res['width'] = $newWidth;
$config_res['height'] = $newHeight;
$this->image_lib->initialize($config_res);
$this->image_lib->resize();
$this->image_lib->clear();
}
else{
echo $this->upload->display_errors();
}
以这种方式你不需要指定new_image,它将被覆盖
答案 1 :(得分:0)
您是否将create_thumb
设置为空字符串?查看CodeIgniter源代码,将此参数设置为除布尔值FALSE
之外的任何值(默认值)将被识别为值“true”。
create_thumb模式的目的是在生成的文件的名称后附加一个后缀,默认为“_thumb”。 http://codeigniter.com/user_guide/libraries/image_lib.html
也许你的上传文件夹中有“filename_thumb.jpg”文件?如果是,则发现问题;)只需删除或修复您的create_thumb
参数。
作为旁注,maintain_ratio = 1
不起作用,只有TRUE
有效。
答案 2 :(得分:0)
您是否尝试在create_thumb函数上避免此错误? &安培;大写字母中的布尔值?
$config['create_thumb'] = FALSE;
$config['new_image'] = $this->image_thumb_name($img);
答案 3 :(得分:-1)
确保注意:为了允许图像类进行任何处理,包含imags。** e文件的文件夹必须具有写入权限。
**注意:对于某些操作,图像处理可能需要大量的服务器内存。如果在处理图像时遇到内存不足错误,则可能需要限制其最大大小,和/或调整PHP内存限制