我已安装了imagemagick,我正在使用示例代码测试此库。
如果图像与php脚本位于同一目录中,则可以正常工作。但如果我把它放在一个文件夹中,它就不会:
$imagick = new Imagick('./img/image.jpg');
我的脚本返回错误代码500。
例如:
<?php
$imagePath = "/img/image.jpg";
function thumbnailImage($imagePath)
{
$imagick = new \Imagick(realpath($imagePath));
$imagick->setbackgroundcolor('rgb(64, 64, 64)');
$imagick->thumbnailImage(100, 100, true, true);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}
thumbnailImage();
答案 0 :(得分:1)
当您使用相对路径时,您正在使用绝对路径。
当你说:
$imagePath = "/img/image.jpg";
您说该图片位于文件系统根目录的img
文件夹中。
假设img文件夹与您的代码位于同一个文件夹中,例如:
-- code_folder/
-- script.php
-- img/
-- image.jpg
您需要提供相对路径。
您可以使用__DIR__
预定义常量,该常量始终指向脚本所在的文件夹,并连接文件夹/图像路径。
E.g:
$imagePath = __DIR__ . "/img/image.jpg";
此外,您使用一个参数定义thumbnailImage();
,正在设置$imagePath
,但不传递该参数。不好。
所以你应该这样做:
thumbnailImage($imagePath);
这应该有效。
下次,尝试查看您的php错误日志,以查找有关正在发生的事情的更多信息。 500错误太笼统,根本无法排除故障。