使用Imagick无法保存缩略图

时间:2013-03-30 08:08:29

标签: php imagick

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

例如:

$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”它可以工作,但是会覆盖我的图像,我怎么能绕过这个呢?为什么它会让我覆盖我的图像而不是创建一个新的?

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

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