使用網路上流傳的一個程式實作pdf截圖為png,需要使用Imagic擴充。在windows下安裝完後提示:
Fatal error: Trying to clone an uncloneable object of class Imagick in C:wwwhxpdf_to_png.php on line 17
使用IIS和Apache都會有這個提示。經過多次測試後,發現兩種解決方法:
1.php.ini中; Enable compatibility mode with Zend Engine 1 (PHP 4.x)
zend.ze1_compatibility_mode = Off
預設為On,改為Off後,即可解決。
2.使用imagick::...這種方法呼叫。
即$im->setResolution(120, 120);可以改寫為:
imagick::setResolution(120, 120);
如果其它擴展出現這類錯誤,一般也是可以使用這兩種方法解決的。
附pdf轉png的程式碼片段:
複製程式碼 程式碼如下:
function pdf2png($pdf, $filename, $page=0) {
function pdf2png($pdf, $filename, $page=0) {
{
exit('no imagick');
return false;
}
if (!file_exists($pdf)) {
return false;
}
$im = new IRick(); , 120);
$im->setCompressionQuality(100);
$im->readImage($pdf . "[" . $page . "]");
$im->setImageFormat('png');
$ im->writeImage($filename);
$im->readImage($filename);
$im->resizeImage(120, 150, Imagick::FILTER_LANCZOS, 1);
$im->writeImage($filename);
return $filename;
}
以上就介紹了cloneable 提示Trying to clone an uncloneable object of class Imagic的解決,包括了cloneable方面的內容,希望對PHP教程有興趣的朋友有所幫助。