提示Trying to clone an uncloneable object of class Imagic的解决
作者:bea
使用网上流传的一个程序实现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 Zen
使用网上流传的一个程序实现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) {
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;
}
有用 | 无用
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) {
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;
}
有用 | 无用
猜你喜欢
您可能感兴趣的文章:
- php数组函数序列之ksort()对数组的元素键名进行升序排序,保持索引关系
- php数组函数序列之rsort() - 对数组的元素值进行降序排序
- 使用PHPRPC实现Ajax安全登录
- 求PHP数组最大值,最小值的代码
- php数组函数序列之each() - 获取数组当前内部指针所指向元素的键名和键值,并将指针移到下一位
- php数组函数序列之end() - 移动数组内部指针到最后一个元素,并返回该元素的值
- php数组函数序列之prev() - 移动数组内部指针到上一个元素的位置,并返回该元素值
- php数组函数序列之next() - 移动数组内部指针到下一个元素的位置,并返回该元素值
- php数组函数序列之array_values() 获取数组元素值的函数与方法
- php数组函数序列之array_keys() - 获取数组键名
- php数组函数序列之array_combine() - 数组合并函数使用说明
- php数组函数序列之in_array() 查找数组值是否存在
- php数组函数序列之array_unique() - 去除数组中重复的元素值
- php数组函数序列之array_sum() - 计算数组元素值之和
- php数组函数序列之array_key_exists() - 查找数组键名是否存在
- php数组函数序列 之array_count_values() 统计数组中所有值出现的次数函数
- php数组函数序列 之shuffle()和array_rand() 随机函数使用介绍
- 让Json更懂中文(JSON_UNESCAPED_UNICODE)
- PHP实现异步调用方法研究与分享