При наложении текста на изображение средствами библиотеки phpThumb/modPhpThumb (фильтр «wmt») текст выглядит коряво (размер — 8-12px, шрифты проверял Arial и Calibri). Вероятно, при наложении текста не используется сглаживание. Соответствующих настроек у phpThumb/modPhpThumb нет. Шрифт используется не системный, а непосредственно указываемый (параметр «f» фильтра «wmt») Посоветуйте, как получить сглаженный текст на изображении? P.S. Да и вообще, не понимаю, как сглаживать текст в php средствами gd и imageMagick… Есть 2 функции/метода: ImageTTFtext() — параметров, отвечающих за сглаживание, нет Imagick::annotateImage() — параметров, отвечающих за сглаживание, нет
Для вывода одинакового для всех картинок текста можно просто накладывать png с подготовленным как надо текстом. Просто я не вижу необходимости динамически внедрять в картинку текст. Подписать можно и в слое, наложенном на картинку средствами html/css.
Для вывода одинакового для всех картинок текста можно просто накладывать png с подготовленным как надо текстом. Текст индивидуален для каждой картинки. И должен присутствовать непосредственно на картинке, т.к. содержит информацию об авторских правах, комментарий и пр. (без комментария, к примеру, будет непонятно или не совсем понятно, что там изображено и где оно находится). Просто я не вижу необходимости динамически внедрять в картинку текст. Подписать можно и в слое, наложенном на картинку средствами html/css. После скачивания картинок с сайта эту информацию (текст) пользователь не увидит. Со всеми вытекающими… P.S.
Информация об авторских правах различается (авторы — разные), комментарии — тоже разные. И это всё должно присутствовать на самой картинке, как минимум, из соображений защиты авторских прав
Знаю только, что при желании можно и watermark почистить Что вы имеете ввиду под «почистить»? Вручную реализовать сглаживание? P.S.: как вариант — habrahabr.ru/post/43744/ В этой статье приведённый класс для наложения текста использует ту же GD-функцию ImageTTFtext(), у которой, как я указал выше, нет параметров сглаживания. И вообще, в статье не упоминается про сглаживание. Разве что в комментариях упоминается библиотека magickwand. Её вы имели ввиду?
А как тебе такой хак? На стороне сервера средствами JS+canvas фигачить картинки-копирайты, а далее уже их накладывать вотермарками? Просто в тех же браузерах, сглаживание — это дело самих браузеров. Открой один и тот же сайт в разных браузерах, и шрифты будут по разному сглажены там. На сколько я знаю, лучшее сглаживание у сафари, затем IE! (да-да, там классное сглаживание), ну и только потом хромы с огнелисами и т.п. Как у пыха со сглаживанием дела обстоят, я не в курсе, к сожалению.
А вот, по теме, если смотреть на приведенные примеры, то результаты весьма хороши: zinchenko.us/article/php-images-with-text Очень заинтересовала тема. В разных СМИ, например Медузе, заглушки для отправки в соц сети очень качественно смотрятся (пример:https://meduza.io/image/share_images/15949.png?). Не вручную же они их делают. Соответственно, нужная штука, на новостных сайтах особенно.
На стороне сервера средствами JS+canvas фигачить картинки-копирайты, а далее уже их накладывать вотермарками? Ну, пока ещё не так припёрло, чтобы до такого дойти. Хотя вариант — решение (и логику взаимодействия с сервером будет нужно проработать, т.к. при наложении используется информация из БД сервера и эту информацию заранее всю на клиент не загрузишь, т.к. её много). Проверил в последнем FF (41.0) — текст не очень-то уж и сглаженный получается. Это если (JS+canvas) P.S. Ну а коли не припёрло, дальше использования готовых библиотек двигаться незачем. Стоит подождать, пока в новых версиях imagick будет реализовано сглаживание текста. И после выполнить перегенерацию всех изображений. Сервер стерпит…
Проверил в последнем FF (41.0) — текст не очень-то уж и сглаженный получается. Это если (JS+canvas) Скорее, совсем не сглаженный
Ясно. Ну, держи в курсе новых достижений. Тема действительно интересная.
Оба класса, предложенные по ссылке, никаких дополнительный действий по сглаживанию не выполняют. Оба класса используют тот же самый ImageTTFtext(). И всё.
Тем не менее, проблема решена. Получил нормальный сглаженный текст. Согласно справке: color Индекс цвета. Использование отрицательных индексов создает эффект выключенного сглаживания. См. imagecolorallocate(). Стало быть, по умолчанию функция должна выполнять сглаживание. Посмотрел в приближении — сглаживание действительно имеется. Но в реальном масштабе шрифт выглядит коряво. Возможно, я слишком привередлив, но корявость действительно имеется. А причины тому следующие:
Круть! Респект! :)