程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 提示Trying to clone an uncloneable object of class Imagic的解決

提示Trying to clone an uncloneable object of class Imagic的解決

編輯:關於PHP編程

使用網上流傳的一個程序實現pdf截圖為png,需要使用Imagic擴展。在windows下安裝完後提示:
Fatal error: Trying to clone an uncloneable object of class Imagick in C:\www\hx\pdf_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) {
if (!extension_loaded('imagick')) {
exit('no imagick');
return false;
}
if (!file_exists($pdf)) {
return false;
}
$im = new Imagick();
$im->setResolution(120, 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;
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved