PHP:使用imagick更改图像的DPI?

我试图弄清楚如何使用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">

我有什么想念的吗?我对图像世界非常陌生.

任何帮助,将不胜感激.

解决方法:

500服务器错误→查看Web服务器错误log1,您将看到:

Fatal error: Class ‘Imagick’ not found

要么

Fatal error: Uncaught exception ‘ImagickException’ with message ‘Can not process empty Imagick object’…

如果看到第一个错误,则必须安装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实际上,上面的两个错误也可以显示而无需查看Web服务器日志文件:下次,放置ini_set(‘display_errors’,1); error_reporting(E_ALL);在脚本顶部,您将直接在页面上看到最多的错误(然后在生产中将其删除).

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...