2013-10-19 52 views
0

我使用REST API從商店獲取產品,大約有3k條記錄。不幸的是,我需要自己創建產品的縮略圖。爲此,我使用PHP的Imagine庫。
當我在下一個任務中插入/更新產品到數據庫後,我從數據庫中選擇所有記錄並嘗試爲每個產品創建縮略圖。
它的工作原理...但我能夠在120s(這是我的執行時間腳本)創建12個縮略圖。 12張縮略圖對我來說太低了,我想加快這個過程,但我該怎麼做?
所有縮略圖都是240x360px,每個縮略圖的大小約爲12KB。圖像操作。如何加快性能

下面是代碼,我用於生成縮略圖:

public function generateThumbnails($products) 
{ 
    $imagine = new Imagine(); 
    $resize = 240/360; 

    foreach($products as $product) 
    { 
     if(!file_exists('data/thumbs/'.$product['productId'].'.jpg')){ 

      $img = $imagine->open($product['productImage']); 
      $size = $img->getSize(); 

      $width = $size->getWidth(); 
      $height = $size->getHeight(); 

      $newWidth = floor($height*$resize); 

      $cordX = $width/2-$newWidth/2; 

      if($cordX < 0) 
       $cordX = 0; 


      $img->crop(new Point($cordX, 0), new Box($newWidth, $height))->resize(new Box(240, 360))->save('data/thumbs/'.$product['productId'].'.jpg'); 
     } 
    } 

} 

進出口運行在本地主機上(Windows 7的)這個腳本,它是一個基於Zend Framework的應用程序的一部分2 +學說2

回答

1

你可以當再次需要縮略圖時使用緩存或文件緩存。