[英]library imagemagick deosn't work with image at path
我已经安装了 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();
您使用的是绝对路径,而您应该使用相对路径。
当你说:
$imagePath = "/img/image.jpg";
您是说图像位于文件系统根目录下的文件夹img
中。
假设 img 文件夹与您的代码位于同一文件夹中,例如:
-- code_folder/
-- script.php
-- img/
-- image.jpg
您需要提供一个相对路径。
您可以使用__DIR__
预定义常量,它始终指向脚本所在的同一文件夹,并连接文件夹/图像路径。
例如:
$imagePath = __DIR__ . "/img/image.jpg";
此外,您正在定义thumbnailImage();
使用一个参数,正在设置$imagePath
,但不传递该参数。 不好。
所以你应该这样做:
thumbnailImage($imagePath);
那应该工作。
下次,请尝试查看您的 php 错误日志以查找有关正在发生的事情的更多信息。 500 错误过于笼统,根本无助于进行故障排除。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.