我正在使用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设置吗?
任何帮助表示赞赏:)谢谢!
答案 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
顺便说一句:我如何成功:在php.ini中编辑: log_errors = Off - > log_errors =开 编辑php.ini后不要忘记重启apache ...
把它放在php代码的开头: 使用error_reporting(E_ALL);