繁体   English   中英

库 imagemagick deosn 无法处理路径中的图像

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM