2013-04-02 192 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的