我试图降低上传图片的质量。这是我的代码
$image_config['source_image'] = 'file.jpg';
$image_config['maintain_ratio'] = TRUE;
$image_config['quality'] = '30%';
$image_config['width'] = 1680;
$image_config['height'] = 1050;
$this->load->library('image_lib', $image_config);
$this->image_lib->resize();
问题是如此图像与file.jpg等质量相同,它没有减少。
答案 0 :(得分:2)
我面临同样的问题,我在图像库文件中找到了一些东西。
system / libraries / image_library.php第455行
if ($this->dynamic_output === FALSE)
{
if ($this->orig_width == $this->width AND $this->orig_height == $this->height)
{
if ($this->source_image != $this->new_image)
{
if (@copy($this->full_src_path, $this->full_dst_path))
{
@chmod($this->full_dst_path, FILE_WRITE_MODE);
}
}
return TRUE;
}
}
如果目标图像的宽度和高度与源图像相同,则此代码忽略图像渲染。 删除上面的代码,它应该有效。
答案 1 :(得分:1)
if ( ! $this->image_lib->resize())
{
echo $this->image_lib->display_errors();
}
我能想到的可能错误:没有给出正确的文件路径或没有安装3个图像库中的一个(GD / GD2,NetPBM或ImageMagick)
希望这有帮助!
答案 2 :(得分:1)
您只需要提供数字值而不是“%”符号
赞$image_config['quality'] = '30';
答案 3 :(得分:0)
同时检查真实的mime类型。使用JPG扩展名重命名的PNG文件无法降低质量。
$info = getimagesize($_filepath);
echo $info['mime'];