[英]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.