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

时间:2014-02-20 12:21:04

标签: image imagemagick imagick jcrop

我正在使用jCrop jquery插件通过ajax调用传递Width Height和x-y cordinates:

使用Imagemagick,想象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中启用调试? 为什么想象力不适合更大的作物面积? 它可能是某种内存问题/ php设置吗?

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

1 个答案:

答案 0 :(得分:1)

好的,让它上班! 这是一个记忆问题......

解决方案(在“新的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://stackoverflow.com/questions/4367 ... rge-images

顺便说一句:我如何成功:

  1. 在php.ini中编辑: log_errors = Off - > log_errors =开 编辑php.ini后不要忘记重启apache ...

  2. 把它放在php代码的开头: 使用error_reporting(E_ALL);