图像库 - 不能降低图像的质量

时间:2011-05-17 10:13:36

标签: php codeigniter

我试图降低上传图片的质量。这是我的代码

$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等质量相同,它没有减少。

4 个答案:

答案 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'];