English 中文(简体)
CodeIgniter 图像 Lib 类不调整图像大小, 但返回真实
原标题:CodeIgniter Image Lib class doesn t resize image but returns true

我试图使用 codigniters 图像 lib 库调整图像大小。 很简单。 但是, 图像没有调整大小, 而且函数返回真实性, 显示_ errors () 没有显示任何错误 。

我在这里的配置将传递到 lib 的图像中:

    //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 的打印器 :

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
)

路径是正确的, 但是图像在调整大小后仍然未动 。

$this-gt;image_lib-gt;display_errors () 上做 $this-gt;image_lib-gt;display_errors () 返回此 :

string    (length=0)

如果有什么不同,图像会通过上传方式上传。

有什么关于什么问题的想法吗?

最佳回答

Try to set the full path from your document root and not from C. Try this code:

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();
}

这样您就不需要指定新图像了, 它会被覆盖

问题回答

您是否将 create_ thumb 设置为空字符串? 查看 CodeIgniter 源, 将此参数设置为比布尔值 FALSE (默认值) 以外的任何参数, 被确认为“ true” 值 。

创建thumb 模式的目的是在生成文件的名称上附加一个后缀,默认为“_thumb”。 http://codigniter.com/user_guide/libraries/image_lib.html

也许您在上传文件夹中有“ filename_ thumb.jpg” 文件? 如果有的话, 请发布发现 ; 只需删除或修正您的 create_ thumb 参数 。


作为侧边注, maindain_ratio = 1 无效,只有 TRUE 有效。

Did You Try To Avoid This Bugs on the create_thumb function ? & Boolean in Capital Letter?

$config[ create_thumb ] = FALSE;
$config[ new_image ] = $this->image_thumb_name($img);

参考文献: