1

我正在尝试使用 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_dumpon$this->image_lib->display_errors()返回:

string '' (length=0)

如果有任何区别,则图像正在通过 Uploadify 上传。

关于有什么问题的任何想法?

4

4 回答 4

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 并且它会被覆盖

于 2012-06-11T17:16:59.443 回答
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起作用。

于 2012-05-26T23:44:46.280 回答
0

您是否尝试在 create_thumb 函数上避免此错误?& 大写字母中的布尔值?

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

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

于 2012-06-12T05:28:08.243 回答
-1

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

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

于 2012-05-26T22:40:19.833 回答