使用imagick裁剪大图像不起作用

Posted

技术标签:

【中文标题】使用imagick裁剪大图像不起作用【英文标题】:Using imagick to crop large image not working 【发布时间】:2014-02-20 12:21:04 【问题描述】:

我正在使用 jCrop jquery 插件通过 ajax 调用将宽度高度和 x - y 坐标传递给:

使用 Imagemagick,我使用 imagick php 扩展:

$picture = new Imagick($src);
$picture->cropImage( $_POST['w'],  $_POST['h'],  $_POST['x'],  $_POST['y']);
$picture->writeImage($outFile);
$picture->thumbnailImage(445, 0);
$picture->writeImage($outFileWeb);
$picture->clear();
$picture->destroy();

用户上传大图像/照片,然后他们选择一个带有 jCrop 的区域进行裁剪。如果他们选择较小的照片区域来裁剪所有内容,则一切正常。当他们尝试选择更大区域的照片进行裁剪时,问题就出现了,然后 php 脚本永远不会返回任何结果。

我不知道如何跟踪出了什么问题或如何调试问题。

编辑

简而言之: 如何在imagick中启用调试? 为什么 imagick 不适用于更大的作物面积? 会不会是某种内存问题/php设置?

任何帮助表示赞赏:) 谢谢!

【问题讨论】:

【参考方案1】:

好的,开始工作了! 这是内存问题...

解决方案(在“new Imagick()”之前放入您的 php 代码:

// pixel cache max size
IMagick::setResourceLimit(imagick::RESOURCETYPE_MEMORY, 64);
// maximum amount of memory map to allocate for the pixel cache
IMagick::setResourceLimit(imagick::RESOURCETYPE_MAP, 64);

在这里找到答案: http://sourceforge.net/apps/trac/gallery/ticket/1513

这里: https://***.com/questions/4367 ... rge-images

顺便说一句:我的调试方式是:

    在 php.ini 中编辑: log_errors = Off -> log_errors = On 修改完php.ini后别忘了重启apache...

    把它放在你的 php 代码的开头: error_reporting(E_ALL);

【讨论】:

以上是关于使用imagick裁剪大图像不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Imagemagick 裁剪不起作用

图像映射在 iOS 设备上不起作用,大图像会被设备重新缩放

GD 库裁剪图像不起作用

使用 imagemagick linux 脚本裁剪图像不起作用

图像视图裁剪不起作用

set_post_thumbnail_size() 裁剪不起作用