【问题标题】:Cannot save thumbnail with Imagick无法使用 Imagick 保存缩略图
【发布时间】:2013-03-20 22:23:11
【问题描述】:

我正在尝试创建图像的缩略图,但是,我可以很好地显示它,但无法保存它。

例如:

$image = new Imagick("photo.png");
$image->thumbnailImage(100, 0);
header("Content-Type: image/png");
echo $image;

这实际上会以缩略图的形式显示我的图像。但是,如果我尝试使用$image->writeImage("thumb_photo.png") 保存它,脚本似乎会停止(我只是通过输入echo Hello 或之后的任何内容来确认这一点)并且没有创建任何文件。

我在带有 Debian Wheezy、nginx 和 PHP 设置的服务器上使用它。目录和 PHP 文件本身是可读、可写的,并且对图像和 PHP 文件本身具有执行权限。 imagick 模块版本是 3.10。 PHP版本是5.4。

如果有人能告诉我问题出在哪里,我将不胜感激。

编辑:得到异常后,我看到WriteBlob Failed "thumb_photo.png" @ error/png.c/MagickPNGErrorHandler/1728

另一件事,显然如果我将输出从“thumb_photo.png”更改为“photo.png”,它可以工作,但会覆盖我的图像,我怎么能解决这个问题以及两个为什么它会让我覆盖我的图像而不是创建一个新的?

【问题讨论】:

  • 如果您尝试使用$image->writeImage("/some/full/path/thumb_photo.png") 保存它会发生什么?也许它没有尝试写入您期望的目录
  • 我试过了,它报告了和以前一样的异常。我尝试了多条路径,似乎都没有。但是,如果我将输入文件的路径更改为完整路径,它实际上会报告它无法读取图像。

标签: php imagick


【解决方案1】:

显然我忘记在我的文件路径的文档根目录上将组更改为www-data。我还需要在其中添加chmod -R g+s。去图吧。

【讨论】:

    【解决方案2】:

    我发现如果 www-data 不存在,您可以将所有权更改为 apache:apache 并让我保存到该文件夹​​。我正在使用带有标准 php/mysql 的 Centos 7。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-06
      • 2019-05-06
      • 1970-01-01
      • 2014-05-31
      • 2023-03-07
      • 2016-10-03
      • 2016-05-03
      • 1970-01-01
      相关资源
      最近更新 更多