Оптимизация Imagick annotateImage

Я генерирую изображения текста с помощью Imagick (думаю, баннеры сайта - они выглядят так). У меня заканчиваются ресурсы на сервере в этой функции, особенно в строке annotate.

public function output_image($type = 'png') {
        $this->set_draw($this->font_size);
        $this->image->newImage($this->width*1.3, 
            $this->line_height*2.5, 
            'transparent'); // make an image that's too big
        $this->image->annotateImage($this->draw, 
            $this->font_size*0.5,  //x offset for cursive fonts
            $this->font_size, // vertical offset for tall ascenders
            0, //angle
            $this->text); // add the text
        $this->image->trimImage(0); // trim it.
        $this->image->setImageFormat($type);
        $this->base64 = base64_encode($this->image);
        echo "<img src='data:image/$type;base64,{$this->base64}'/>"; 
    }

В моей локальной среде (win 8.1, xampp, 4 ГБ оперативной памяти) это быстро.

На сервере (godaddy linux, 1 ГБ ОЗУ) максимально используются ресурсы, и это занимает в 10 раз больше времени, чем в моей локальной среде (до 4,5 секунд для длины предложения).

Я замерил время каждой функции в классе и обнаружил, что время тратится на строку annotateImage().

Я могу использовать аппаратное обеспечение для решения проблемы, но мне интересно, есть ли лучший способ написать текст на изображении? Или способ ускорить работу аннотации (уменьшить качество изображения и т. д.)?


person Josiah    schedule 14.02.2015    source источник
comment
Я открыт для других программных решений (shell_exec, gd и т. д.). Изображения имеют ширину от 500 до 1000 пикселей.   -  person Josiah    schedule 14.02.2015


Ответы (1)


Похоже, что на сервере (linux) shell_exec действительно намного быстрее, чем расширение php; давая лучшее время, чем окна (даже менее 0,1 секунды). С другой стороны, производительность Windows незначительно снижается с shell_exec.

Я предполагаю, что это из-за версии на godaddy — на сегодняшний день это 6.5.4-7, версия 2009 года. Я запускал 6.7.7-4 на своем компьютере с Windows. Если они используют 5-летнюю версию программы, расширение php могло быть значительно улучшено с тех пор.

person Josiah    schedule 15.02.2015