如何使用Kohana的Image模块加快图像大小调整

时间:2011-08-23 16:11:16

标签: php kohana kohana-3

我有一个简单的脚本,可以动态地从Cloudfront存储桶获取图像,调整它们的大小,将它们转换为有效的数据URL并在页面上显示它们。

我遇到的问题是加载时间。下面的脚本加载大约需要12秒(每张图像大约需要1到1.5秒)

是否有任何建议的方法可以加快速度?

$mango = Mango::factory('illustration')->load(9)->as_array();

$images = array();

foreach($mango as $data)
{
  $image = Image::factory('cloudfrontbucket' . urlencode($data->illustration), 'imagick');
  $image = $this->data_uri($image->resize(200), 'image/png');   

  $images[$data->id]['image'] = $image;
  $images[$data->id]['id']  = $data->id;
}

提前致谢。

1 个答案:

答案 0 :(得分:0)

基本上,你不能加快图像大小调整过程本身的速度。该模块使用GD或ImageMagick,它们是核心的php扩展,并尽可能快地运行。唯一的开销是常规的Kohana东西。如果你想加快这个过程,你应该考虑一种加速Kohana本身的方法,例如@ThePixelDeveloper指出的Gearman。

如果无法减轻负载,则可以解决此问题,以限制您一次处理的图片。下一次脚本运行时(通过cronjob或者如果你没有访问crontab的穷人cron),只需检查哪些图片尚未处理并拍摄一些。