CodeIgniter Image Lib类不会调整图像大小,但会返回true

时间:2012-05-26 22:28:20

标签: php codeigniter

我正在尝试使用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上传图片。

关于什么是错的任何想法?

4 个答案:

答案 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);

参考:https://stackoverflow.com/a/9040862/1444072

答案 3 :(得分:-1)

确保注意:为了允许图像类进行任何处理,包含imags。** e文件的文件夹必须具有写入权限。

**注意:对于某些操作,图像处理可能需要大量的服务器内存。如果在处理图像时遇到内存不足错误,则可能需要限制其最大大小,和/或调整PHP内存限制