2011-12-04 39 views
1

當我生成使用Imagick縮略圖,我加載圖像一次,使用:生成縮略圖的大量使用Imagick

$im = new Imagick($filePath);

然後我通過此$im對象周圍創建不同尺寸的使用

$im->thumbnailImage($newX, $newY); 

但是,我觀察到,當我使用相同的$im圖像資源時,圖像斑點的質量不如再次讀取文件並從新開始通過打開f再次。

這讓我想,也許我應該做一些事情後,我做了thumbnailImage()爲了重置它回到原來的文件資源?

此外,我做了一個cropImage()後,我不能讓$im回到原始圖像。 我已經嘗試使用$im->setImagePage(0, 0, 0, 0);沒有任何運氣。

有什麼我應該做的,而不是使用thumbnailImage來獲得他最好的質量?

此外,如果原始圖像是32kb,當我最終編寫它時,$im就像90kb。

回答

0

您必須clone你的對象做一個縮略圖之前:

$im_thumb = clone $im; 

要創建具有低尺寸圖像使用setCompressionQuality方法,通常爲60或70,使工作。

(在許多樣品中上述PHP鏈接)

我通常使用的GD庫更快的結果,許多指令/樣品來調整here