Bu Görüntü Oluşturma fonksiyonu Performans İyileştirme

2 Cevap php

Ben bir dize almak ve daha sonra farklı boyutlarda farklı yazı tiplerini kullanarak bir resmin içine dönüştürmek için GD2 ve görüntü fonksiyonlarının kullanımını yapıyorum. Kullandığım işlevi altındadır.

Şu anda, oldukça hızlı ama yeterince hızlı değil. Işlevi kullanıcı başına yaklaşık 20 kez aradım alır ve oluşturulan görüntüler (farklı) her zaman yenilerini yüzden önbelleğe yardım edecek değil!

Ben bu işlev daha hızlı yapmak için nasıl bazı fikirler almak için umuyordum. Belki komut çalıştıran daha fazla RAM kaynağı? Bu PHP fonksiyon özgü başka bir şey?

Bu işlevin performansını tweak Yapabileceğim başka bir şey?

  function generate_image($save_path, $text, $font_path, $font_size){

    $font = $font_path;

    /*
    * I have simplifed the line below, its actually a function that works out the size of the box
    * that is need for each image as the image size is different based on font type, font size etc
    */
    $measure = array('width' => 300, 'height'=> 120);

    if($measure['width'] > 900){ $measure['width'] = 900; }

    $im = imagecreatetruecolor($measure['width'], $measure['height']); 
    $white = imagecolorallocate($im, 255, 255, 255);
    $black = imagecolorallocate($im, 0, 0, 0);

    imagefilledrectangle($im, 0, 0, $measure['width'], $measure['height'], $white);     

    imagettftext($im, $font_size, 0, $measure['left'], $measure['top'], $black, $font, '    '.$text);

    if(imagepng($im, $save_path)){

        $status = true;

    }else{

        $status = false;

    }

    imagedestroy($im);

    return $status;

}

Herhangi bir yardım için teşekkür ederiz

2 Cevap

Ben onun iyi düşünmek

Bunun yerine yeni bir görüntüsü her zaman oluşturmak yerine, kırpma, sonra (biz zaten size bir sabit maksimum yükseklik kullanabilirsiniz var mı, maksimum genişlik 900px olduğunu biliyor musunuz?) Boş bir PNG dosyası açmak, metin eklemek, ve olabilir o () (imagecopy bakınız).

Emin değilim, ama o anda ne yaptığını daha hızlı olabilir.