我一直在阅读文档并尝试用上传图片来制作大拇指,但我似乎无法找到问题。
图像上传并正确保存但拇指不正确,失败且没有错误输出。 这是我正在使用的代码:
$data = $this->upload->data();
$config_image['image_library'] = 'gd';
$config_image['source_image'] = $data['full_path'];
$config_image['new_image'] = 'uploads/thumbs/';
$config_image['create_thumb'] = TRUE;
$config_image['maintain_ratio'] = TRUE;
$config_image['width'] = 750;
$this->load->library('image_lib', $config_image);
if ( !$this->image_lib->resize())
{
$this->session->set_flashdata('message', $this->image_lib->display_errors());
}
另外,我想调整图像大小以适应max-width = 750,但保持比率。我正在做的事情是正确的吗? 谢谢!
答案 0 :(得分:1)
可能两者都必须指定宽度和高度?只需尝试使用固定高度(并在第二步中进行宽高比感知缩放)。
为了保持比例,简单,首先计算图像的纵横比,然后计算目标高度:
$target_width = 750;
$image_aspect_ratio = $image_width / $image_height;
$target_height = $target_width / $image_aspect_ratio;
你可以从简单的数学推导出这个:r = w / h。所以,w = r * h(=目标宽度,如果你有一个固定的高度)和h = w / r(=目标高度,如果你有一个固定的宽度)。
答案 1 :(得分:1)
你一定要使用GD2。
CI的图像处理类有时候有点气质。如果您无法开展工作,请查看timthumb。它是一个小的1文件PHP脚本,可以动态调整图像大小并使用缓存系统。您只需通过图像标记的src属性传递所需的参数。非常简单,效果非常好,而且比CI的图像处理类更令人头疼。
答案 2 :(得分:1)
我知道这有点太晚了,但我最近遇到了同样的问题并通过初始化课程解决了这个问题。
CodeIgniter示例不起作用,您必须先加载该类:
$this->load->library('image_lib');
然后在设置完所需的配置之后,就像这样初始化类:
$this->image_lib->initialize($config);
这对我有用。
我发布这个以防其他人遇到同样的问题,所以他们用CodeIgniter而不是另一个库来解决它。
答案 3 :(得分:0)
删除$config_image['new_image'] = 'uploads/thumbs/';
并将$config['image_library'] = 'gd';
更改为$config['image_library'] = 'gd2';
还要确保$ data数组包含full_path。
答案 4 :(得分:0)
简单的问题,文件权限是否正确?另一个提示是将CI错误记录设置为最高值,并查看它是否输出任何内容。