【问题标题】:Imagick doesn't read image, does not output any errors or warningsImagick 不读取图像,不输出任何错误或警告
【发布时间】:2017-03-27 04:30:06
【问题描述】:

我正在尝试使用 Imagick 读取图像,我在 PHP 上使用此代码:

<?php

if(extension_loaded('imagick')) {
    echo "Imagick Loaded <br>";
}
else {
    echo "Imagick Not Loaded <br>";
}  

function scaleImage()
{

    $realpath = "D:\Tentacle1.png";
    $imagick = new \Imagick($realpath);

    var_dump($imagick);
}

scaleImage();



?>

输出是这样的:

Imagick Loaded 
object(Imagick)#1 (0) { }
  • 基本上,它不读取图像,它只是加载一个空对象。

  • 它没有给我任何错误或警告。

  • PHP 日志也不显示任何错误或警告。

  • 我已尝试使用此 (https://stackoverflow.com/a/16091295/2724978) 读取文件内容 - 未成功

  • 此测试有效:https://stackoverflow.com/a/22438898/2724978

  • 图片在正确的路径,文件名大小写正确

  • 我在 Windows 上

  • 尝试使用另一个文件和不同的扩展名 (JPG),也没有成功

  • ImageMagick 扩展在 php_info() 上正常显示:

这非常令人沮丧,我没有办法解决它。有人能帮帮兄弟吗?

【问题讨论】:

  • 为什么imagick前面有一个斜杠("\")??
  • @PaulCrovella 谢谢伙计..这对我来说真的是新信息..
  • 回显 $realpath 会得到什么
  • 可能导致问题的一件事是在路径名中使用“\”字符...这是转义字符,因此您应该像 D:\\ 一样对其进行转义Tentacle1.png 或者只是用'/'替换它

标签: php imagemagick imagick


【解决方案1】:

好吧,伙计们,我知道我会觉得自己像个白痴,问题是我正在输出

echo "Imagick Loaded <br>"; 

之前

header("Content-Type: image/jpg");

所以我总是有一个空白文件。天哪。

除此之外,显然 imagick 对象确实是一个 (0) 元素的数组,或者任何显示此输出的东西让我感到困惑:

object(Imagick)#1 (0) { }

2 小时后,问题解决了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-01
    相关资源
    最近更新 更多