PHP imagettftext(): не удалось найти / открыть шрифт с помощью PHP-библиотеки "Изображение с текстом"

Я пытаюсь сгенерировать изображения с помощью этой библиотеки, я последовал примеру здесь, но когда я запустил скрипт, я получил эти ошибки в моем файле error.log:

[09-Aug-2015 14:40:54 UTC] PHP Warning:  imagettfbbox(): Could not find/open font in /home/user/public_html/my_website/vendor/nmcteam/image-with-text/src/NMC/ImageWithText/Text.php on line 166
[09-Aug-2015 14:40:54 UTC] PHP Warning:  imagettfbbox(): Could not find/open font in /home/user/public_html/my_website/vendor/nmcteam/image-with-text/src/NMC/ImageWithText/Text.php on line 182
[09-Aug-2015 14:40:54 UTC] PHP Warning:  imagettfbbox(): Could not find/open font in /home/user/public_html/my_website/vendor/nmcteam/image-with-text/src/NMC/ImageWithText/Text.php on line 194
[09-Aug-2015 14:40:54 UTC] PHP Warning:  imagettftext(): Could not find/open font in /home/user/public_html/my_website/vendor/intervention/image/src/Intervention/Image/Image.php on line 1300

это структура моего сайта:

-public_html
    -my_website
        -vendor
            -autoload.php
            -nmcteam
                -image-with-text
                    -NMC
                        -ImageWithText
                            -Text.php
            -intervention
                -src
                    -Intervention
                        -Image
                            -Image.php
            -
        -php
            -img_creator.php
            -font.ttf
            -source.png

и это мой сценарий (img_creator.php):

<?php
// Enable Composer autoloading
require '../vendor/autoload.php';

// Create image
$image = new \NMC\ImageWithText\Image('source.jpg');

// Add text to image
$text1 = new \NMC\ImageWithText\Text('Thanks for using our image text PHP library!', 3, 25);
$text1->align = 'left';
$text1->color = 'FFFFFF';

$text1->font = "font.ttf";
$text1->lineHeight = 36;
$text1->size = 24;
$text1->startX = 40;
$text1->startY = 40;
$image->addText($text1);

// Add more text to image
$text2 = new \NMC\ImageWithText\Text('No, really, thanks!', 1, 30);
$text2->align = 'left';
$text2->color = '000000';
$text2->font = 'fonts/Ubuntu-Medium.ttf';
$text2->lineHeight = 20;
$text2->size = 14;
$text2->startX = 40;
$text2->startY = 140;
$image->addText($text2);

// Render image
$image->render('destination.jpg');

Я много искал, но не могу найти решение.

это не работает для меня. Я пытался переместить шрифт в папке библиотеки, но ни одно из этих решений не работает.

1 ответ

Попробуйте использовать абсолютный путь при настройке шрифта, например так:

$text1->font = dirname(__FILE__) . '/path/to/font/Ubuntu-Medium.ttf';

или если вы на PHP 5.3+

$text1->font = __DIR__ . '/path/to/font/Ubuntu-Medium.ttf';

В вашем примере путь должен быть:

$text1->font = __DIR__ . '/font.ttf';
Другие вопросы по тегам