2015-11-08 111 views
2

我想裁剪圖像的一部分,然後將部分上傳到其他服務器。 我必須確保我上傳的圖片大小低於300k。imagick getImageLength不適用於裁剪後圖像

$image = new Imagick($path); 
echo $image->getImageLength(); 

$image->cropImage($image->getImageWidth(), $image->getImageHeight()/4, 0, 0); 

echo $image->getImageLength(); 

我第一次用$ image-> getImageLength()得到圖像大小返回圖像的正確值。 但它在cropImage後獲得圖像大小時返回0。

我在處理圖像後如何獲得正確的值?我想知道它是否足夠小可以上傳。

+0

必須有更多事情要做。你應該檢查以確保'$ image-> getImageWidth()'和'$ image-> getImageHeight()'產生非零數字。然後檢查以確保'$ image-> getImageHeight()/ 4'大於零。 – Whitecat

+0

隨意發佈一個完成代碼示例的示例圖像。在此之前,我認爲你的代碼有錯誤。 – Danack

+0

@Whitecat。最後我使用strlen($ image-> getImageBlob())來獲取圖像文件大小。 – LCB

回答

5

最後,我想我找到了裁剪圖像後獲取文件大小的方法。

使用strlen($image->getImageBlob())將始終返回正確的值。

0

看來,Imagick庫只能計算圖像以某種方式輸出後的長度。如果您在之前呼叫$image->getImageLength()之前呼叫$image->getImageBlob(),它將返回正確的值。