0

REST API を使用して店舗から商品を取得しています。約 3,000 件のレコードがあります。残念ながら、製品のサムネイルを自分で作成する必要があります。これを行うには、PHP用のImagineライブラリを使用します。
次のタスクで製品をデータベースに挿入/更新した後、データベースからすべてのレコードを選択し、各製品のサムネイルを作成しようとしています。
それは機能します...しかし、120秒で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');
        }
    }

}

このスクリプトを localhost (Windows 7) で実行しています。これは、Zend Framework 2 + Doctrine 2 に基づくアプリケーションの一部です。

4

1 に答える 1