我想用来制作带角落的缩略图。
以下是有趣的内容:
$background = 'white';
$image->cropThumbnailImage($width,$height);
$im = new Imagick();
$im->newImage($width, $height, $background);
//$image->sharpenImage(50, 1);
$image->roundCorners( $cornersSize, $cornersSize);
$im->compositeImage($image, Imagick::COMPOSITE_OVER, 0, 0);
$im->setImageFormat('jpeg');
$im->flattenImages();
$image = $im;
服务器上需要10秒才能创建它!
在小型笔记本电脑上,需要1.5秒(仍然很慢)。
我们如何才能改善这一点?
精密工业:
我只用一张图片重新启动代码:20148px x 1222px。笔记本电脑上10秒钟,服务器上20秒钟。
服务器:
笔记本电脑:
服务器:
答案 0 :(得分:2)
如果您的服务器是Ubuntu 10.04 / Debian 6,使用Viruozzo,或者其他虚拟化平台,或者只是多处理器系统,这可能是ImageMagick的OpenMP支持的错误。
在theese平台上使用imagick PHP扩展,Imagemagick可能会很慢。制作简单的图像需要几秒而不是几毫秒。
对我有用的解决方案: http://tellgren.com/blog/2011/03/24/trouble-with-imagemagick-on-vps/
答案 1 :(得分:0)
虽然您可以使用GPU进行某些处理,但在这种情况下不会使用它。只有你的CPU。
您似乎正在做一些不必要的步骤。这有什么问题:
$image->cropThumbnailImage($width,$height);
$image->roundCorners( $cornersSize, $cornersSize);