使用PHP对大型图像重新采样

使用PHP对大型图像重新采样,php,ubuntu,nginx,imagemagick,Php,Ubuntu,Nginx,Imagemagick,我试图通过调用ImageMagick resampleImage方法对图像进行重采样,但当我这样做时,它会在高CPU负载下失败,这会破坏我的所有服务器(包括nginx) 服务器没有显卡,电源仅限于AWS的t2.small实例(1个CPU和2GB内存) 我试着用setImageResolution方法替换它,或者试着设置内存限制,但是我什么都没有得到。服务器负载过大,导致我的nginx死机,整个图像根本没有处理 另外值得一提的是,我从命令行通过CRON任务运行重采样,我的服务器操作系统是Ubunt

我试图通过调用ImageMagick resampleImage方法对图像进行重采样,但当我这样做时,它会在高CPU负载下失败,这会破坏我的所有服务器(包括nginx)

服务器没有显卡,电源仅限于AWS的t2.small实例(1个CPU和2GB内存)

我试着用setImageResolution方法替换它,或者试着设置内存限制,但是我什么都没有得到。服务器负载过大,导致我的nginx死机,整个图像根本没有处理

另外值得一提的是,我从命令行通过CRON任务运行重采样,我的服务器操作系统是Ubuntu,ImageMagick版本是7


更新:我们发现convert和php中使用的版本不同。您知道PHP如何知道使用了哪个ImageMagick版本吗?

convert-version返回7.0 PHPImagick模块getVerion返回6.8.9


谢谢

图像大小是多少?是否仅针对特定图像?所有图像都会出现这种情况,大多数图像的大小都是5000*5000或更多。更新:我们已经确定convert和php中使用的版本不同。您知道PHP是如何知道使用哪个ImageMagick版本的吗?您的输入图像是否同时指定了密度和单位?有时图像没有单位和/或密度被设置或解释为1。图像大小是多少?这仅适用于特定图像吗?所有图像都会出现这种情况,大多数图像都是5000*5000或更多。更新:我们发现convert和php中使用的版本不同。您知道PHP是如何知道使用哪个ImageMagick版本的吗?您的输入图像是否同时指定了密度和单位?有时图像没有单位和/或密度设置或解释为1。
$src->resampleImage(320,320,imagick::FILTER_UNDEFINED,1);