我正在试图弄清楚如何使用PHP和imagic来增加图像DPI。
但是,每次我使用以下代码时,我的页面都会返回500错误!
这是代码:
$im = new Imagick();
$im->setImageUnits(imagick::RESOLUTION_PIXELSPERINCH);
$im->setImageResolution(300,300);
$im->readImage("test.png");
$im->setImageFormat("png");
header("Content-Type: image/png");
echo $im;
我知道图像魔法已安装,因为我正在使用VPS而且我也试过这个代码可以正常工作:
<?php
exec("/usr/bin/convert bb9yuui70.png -bordercolor black -border 10x10 bb9yuui70.png");
?>
<img src="bb9yuui70.png">
我有什么遗失的东西吗?我对imagic世界很陌生。
任何帮助将不胜感激。
答案 0 :(得分:4)
500服务器错误→查看网络服务器错误日志 1 ,您会看到:
致命错误:Class&#39; Imagick&#39;找不到
或
致命错误:未捕获的异常&#39; ImagickException&#39;有消息&#39;无法处理空的Imagick对象&#39; ...
如果您看到第一个错误,则必须安装Imagick
php模块(仅安装imagemagick
是不够的。)
但是,安装了Imagick
后,您的代码也会失败,因为您第一个来加载图片,然后来设置单位,分辨率等。 ..
$im = new Imagick();
$im->readImage("test.png"); # <--------
$im->setImageUnits(imagick::RESOLUTION_PIXELSPERINCH);
$im->setImageResolution(300,300);
$im->setImageFormat("png");
header("Content-Type: image/png");
echo $im;
1 实际上,在不查看网络服务器日志文件的情况下也可以显示以上两个错误:下次将ini_set( 'display_errors', 1 ); error_reporting( E_ALL );
放在脚本的顶部,您将直接在您的脚本上看到大多数错误页面(然后,在生产时将其删除)。