2011-07-19 187 views
1

有沒有人有這方面的工作?我認爲圖像已經被優化了。然後它被調整大小,並且儘管圖片被縮小了,但它還是放棄了優化。文件大小增加。PHP - 調整大小的圖像有較大的文件大小

有沒有人遇到過這個。

我有一個保存在50%質量的圖像。如果我複製 - >調整大小 - >保存在70%,它獲得80Kb ..

有沒有一種解決方案,使我能夠檢測圖像質量之前,它?

function resize($width,$height) { 
    $new_image = imagecreatetruecolor($width, $height); 

    imagesavealpha($new_image, true); 
    $trans_colour = imagecolorallocatealpha($new_image, 0, 0, 0, 127); 
    imagefill($new_image, 0, 0, $trans_colour); 

    imagecopyresampled($new_image, $this->image, 0, 0, 0, 0, $width, $height, $this->getWidth(), $this->getHeight()); 
    $this->image = $new_image; 
} 

... 

imagejpeg($this->image,$filename,$compression); 

回答

0

從技術上講,轉換的質量率不是來自jpeg數據,它只是告訴轉換器在尺寸和質量之間做出哪種折衷。

有些轉換器將它存儲在JPEG標頭的EXIF數據中,所以如果仍然存在,可以將其與exif_read_data一起使用,並查看是否返回壓縮信息。

+0

Pelle ten Cate,[在superuser.com上](http://superuser.com/questions/62730/how-to-find-the-jpg-quality/62734#62734)表明ImageMagick可以確定質量即使文件沒有EXIF數據保存。 – binaryLV