程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
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編程

在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