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';