使用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裁剪大图像不起作用的主要内容,如果未能解决你的问题,请参考以下文章