Intereting Posts
имея http ссылки на странице https, но не скрипты или css Неустранимая ошибка: допустимый размер памяти с помощью Drupal Получение синтаксической ошибки mysql с использованием codeigniter LIKE активная запись Переключение с мобильной версии на полный сайт (настольная версия) Категории детей WordPress, не работающие в URL-адресах, как они должны Заполнение базы данных в файле миграции Laravel Пропустить Javascript Array -> PHP Включение Paragonie Halite в проект не находит переменных и функций Загрузка страницы – белая «вспышка» между страницами Создание новой папки tmp для использования PHP? Как изменить кодировку символов PDO / SQLite-соединения в PHP? Стандартная практика обнаружения мобильных устройств и страниц подачи в PHP и jQuery PHP Передача по ссылке в foreach API Instagram не может найти информацию о частных профилях Какие библиотеки будут анализировать DTD с помощью PHP

Нарисуйте текст с помощью специального шрифта с помощью ImageMagick и PHP

Я хочу динамически визуализировать текст изображения с помощью специального шрифта, предпочтительно с возможностью вывода напрямую или сохранения в файл . И автоматически установить размер изображения в соответствии с комбинацией шрифт / размер .

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

Итак, теперь я ищу ImageMagick. Я нашел пример в документах, которые, похоже, делают то, что я хочу. Возможно ли это с помощью php_magick? Особенно в той части, где не задан размер изображения 🙂 Если это не так, могу ли я сделать вывод из командной строки в исходное изображение, поэтому я могу передать его непосредственно клиенту с помощью PHP?

Благодаря!


Реальный вопрос, вероятно, заключается в следующем: как мне преобразовать IM-команду ниже в PHP-код, используя php_magick?

convert -background lightblue -fill blue -font Arial -pointsize 72 label:Anthony 

Вы должны использовать функцию annotateImage класса Imagick для дублирования этой функциональности.

Вот прямая копия пасты из этой документации :

 <?php /* Create some objects */ $image = new Imagick(); $draw = new ImagickDraw(); $pixel = new ImagickPixel( 'gray' ); /* New image */ $image->newImage(800, 75, $pixel); /* Black text */ $draw->setFillColor('black'); /* Font properties */ $draw->setFont('Bookman-DemiItalic'); $draw->setFontSize( 30 ); /* Create text */ $image->annotateImage($draw, 10, 45, 0, 'The quick brown fox jumps over the lazy dog'); /* Give image a format */ $image->setImageFormat('png'); /* Output the image with headers */ header('Content-type: image/png'); echo $image; 

Решил пропустить API и использовать интерфейс командной строки.

 convert -background lightblue -fill blue -font Arial -pointsize 72 label:Anthony png:- 

Это возвращает необработанные данные PNG, которые затем можно выводить в браузер. Замените png:- с именем файла, которое нужно сохранить в файл.

Не забудьте использовать escapeshellarg если вы используете пользовательский ввод в качестве параметров здесь.