2013-04-02 145 views
0

下面的工作对png文件很好,但对于jpeg/jpg压缩不起作用。PHP GD压缩PNG,但不压缩Jpeg

function compressImage($source, $destination, $quality) { 
    $info = getimagesize($source); 
    if ($info['mime'] == 'image/jpeg') $image = imagecreatefromjpeg($source); 
    elseif ($info['mime'] == 'image/png') $image = imagecreatefrompng($source); 
    imagejpeg($image, $destination, $quality); 
    return $destination; 
} 

如何获取它压缩jpeg?

+1

你是什么意思 “它不工作” 吗?怎么了? – Adrian

+2

jpgs始终被压缩。但如果将质量设置得过高,则可以人为增加文件大小,以获得实际质量的零增益。 –

+0

@adrian我的700KB jpeg文件之后仍然是700KB。 – Joshua

回答

0

为了使用GD操作JPEG文件,您的PHP版本需要内置libjpeg支持进行编译。您可以在phpinfo上进行检查。寻找有以下两种:

  • JPEG支持启用
  • libjpeg的版本6B (或不同)

如果你没有这些,问你的主机。

另一个可能来自这个问题的问题是,您的MIME类型的JPEG图像可能会出现未知。仔细检查库的版本 - 如果它存在,请回过头来评论一下,我会看看是否可以通过图书馆内省的方式在代码中发现问题。

+0

他的问题不是他没有libjpeg,OP声称他可以从PNG创建JPEG很好。 – Adrian

+0

很酷。我同时启用了JPEG支持和libJPEG版本6b。 – Joshua

0

问题出在PHP上。

务必:

百胜安装GD GD-devel的