2013-10-06 55 views
1

我想完成我的圖像上傳,利用imagick處理各種圖像類型。有一件事我特別想說明的是將jpeg文件轉換爲漸進式jpeg。我已經嘗試了下面的代碼,但是當我查看在irfranview中獲取輸出的圖像時,jpeg不是漸進的。有任何想法嗎?PHP Imagick類 - 將JPEG轉換爲逐行JPEG?隔行掃描不起作用

foreach ($thumbnailScaleWidths as $thumbnailScaleWidth) { 
    $thumbnail = new imagick($uploadedFile['tmp_name']); 
    $thumbnailDimensions = $thumbnail->getImageGeometry(); 
    $thumbnailWidth = $thumbnailDimensions['width']; 
    $thumbnailHeight = $thumbnailDimensions['height']; 
    $thumbnailScaleHeight = ($thumbnailScaleWidth/$thumbnailWidth) * $thumbnailHeight; 

    $thumbnail->thumbnailImage($thumbnailScaleWidth, $thumbnailScaleHeight); 
    $thumbnail->setImageInterlaceScheme(Imagick::INTERLACE_PLANE); 
    $thumbnail->writeImages($_SERVER['DOCUMENT_ROOT'] . "/Resources/Media/$userId/$internalName-$thumbnailScaleWidth.$fileType", true); 
} 

有關爲什麼不輸出漸進式jpegs的任何想法?

+0

嗨Braydon,你有沒有找到任何解決方法來製作漸進式的JPEG? – Webinan

回答

1

使用setInterlaceScheme而不是setImageInterlaceScheme - 後者似乎沒有做任何事情,但前者對我來說工作得很好。

+0

對此進行了修改,使其聽起來更像是答案,更不像評論,以迴應某人將其標記爲「不是答案」。這現在肯定是一個答案的嘗試,不應該被標記,但如果它是錯誤的(我沒有PHP的經驗,所以我不能說是否是),你應該投票,而不是標誌,它。 – ArtOfWarfare

+0

我相信setImageInterlaceScheme應該在* Imagick創建圖像時使用,而不是編輯現有的圖像。有很多東西存在類似的一對方法。 – Bell