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;
        }

时间: 2024-09-15 23:26:53

Trying to clone an uncloneable object of class Imagic的解决方法_php技巧的相关文章

提示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 Engin

PHP JSON出错:Cannot use object of type stdClass as array解决方法_php技巧

php再调用json_decode从字符串对象生成json对象时,如果使用[]操作符取数据,会得到下面的错误: 复制代码 代码如下: Cannot use object of type stdClass as array 产生原因: 复制代码 代码如下: $res = json_decode($res); $res['key']; //把 json_decode() 后的对象当作数组使用. 解决方法(2种): 1.使用 json_decode($d, true).就是使json_decode 的

php警告Creating default object from empty value 问题的解决方法_php技巧

解决方法是找到报错的位置然后看哪个变量是没有初始化而直接使用的,将这个变量先实例化一个空类.如: 复制代码 代码如下: $ct = new stdClass(); 修改文件相应代码,如: 复制代码 代码如下: if ( ! isset( $themes[$current_theme] ) ) { delete_option( 'current_theme' ); $current_theme = get_current_theme();}$ct = new stdClass(); <!--添加这

JS 对象(Object)和字符串(String)互转方法_javascript技巧

利用原生JSON对象,将对象转为字符串 var jsObj = {}; jsObj.testArray = [1,2,3,4,5]; jsObj.name = 'CSS3'; jsObj.date = '8 May, 2011'; var str = JSON.stringify(jsObj); alert(str); 从JSON字符串转为对象 var jsObj = {}; jsObj.testArray = [1,2,3,4,5]; jsObj.name = 'CSS3'; jsObj.da

js中的window.open返回object的错误的解决方法_javascript技巧

解决window.open后返回object的错误 复制代码 代码如下: <a href="javascript:void(window.open('','','width=200,height=200'))">window.open()</a> 只在js的外层加上一个void不带返回参数的声明. 顺便在这里将window.open函数的参数使用也列出来: window.open函数参数列表 window = object.open([URL ][, name

PHP中把stdClass Object转array的几个方法_php实例

方法一: 复制代码 代码如下: //PHP stdClass Object转array  function object_array($array) {      if(is_object($array)) {          $array = (array)$array;       } if(is_array($array)) {           foreach($array as $key=>$value) {               $array[$key] = object_

PHP错误Cannot use object of type stdClass as array in错误的解决办法_php技巧

很多人在PHP输出一个二维数组的时候出现"Fatal error: Cannot use object of type stdClass as array in--".解决办法分析如下: 现有这样一个二维数组: 复制代码 代码如下: Array (  [0] => stdClass Object (   [id] => 1   [title] => 招聘信息   [size] => 300*150   [pic] => ./upload/201406020

php警告Creating default object from empty value 问题的解决方法

 PHP 提示 Creating default object from empty value 的问题,一般是由于PHP版升级的原因,PHP 5.4 以上的版本一般会报这个错误 解决方法是找到报错的位置然后看哪个变量是没有初始化而直接使用的,将这个变量先实例化一个空类.如:    代码如下:$ct = new stdClass(); 修改文件相应代码,如: 代码如下:if ( ! isset( $themes[$current_theme] ) ) {  delete_option( 'cur

git clone Google的代码失败的解决方法

       git clone Google的volley代码遇Q.        想到用代理服务器就可以解决这个问题.Google了一下解决方法,记录下来,分享一下.        git config:                           设置代理服务器: git config --global http.proxy http://proxyuser:proxypwd@proxy.server.com:8080 git config --global https.proxy