Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Работа с библиотекой GD
 
 автор: vtos   (18.05.2010 в 17:27)   письмо автору
25.6 Кб
 
 

Здравствуйте!
Вопрос связан с использованием функции ImageTTFText(). Она накладывает текст на изображение, работает в принципе все верно. Но вот проблема - если присмотреться внимательно к получившейся картинке с текстом, то видно, что вокруг текста появляются словно размытые участки, становятся видны пиксели, как это бывает на изображениях с очень низким разрешением. Прилагаю картинку с текстом, если ее немного увеличить, то эти "размытости" вокруг текста становятся очень хорошо видны.
Также привожу скрипт формирования изображения:

$font = getcwd()."/bts.ttf";
$Image = ImageCreateFromJpeg("vclass.jpg");
$textColor = ImageColorAllocate($Image,255,255,255);
ImageTTFText($Image,15,0,215,50,$textColor,$font,"Some text some text");
ImageTTFText($Image,12,0,215,70,$textColor,$font,"Some text some text");
ImageTTFText($Image,12,0,215,90,$textColor,$font,"Some text some text");
ImageJpeg($Image);
ImageDestroy($Image);
header("Content-type: image/jpg");

Кто-то сталкивался с таким явлением? Может быть, у меня что-то в коде не так? Или такое явление нормально и не стоит обращать на это внимание?
Будет интересно увидеть какие-либо предложения.

  Ответить  
 
 автор: sim5   (18.05.2010 в 17:55)   письмо автору
 
   для: vtos   (18.05.2010 в 17:27)
 

Это следствие JPEG-компрессии, на границах резких цветовых переходов такое и будет наблюдаться. Плюс не забывайте, что у вас подложка тоже уже сжата, а повторное сжатие в JPEG формате, это дополнительная потеря качества. Если подложка одноцветная, то нет необходимости для этого изображение-источник, ее можно приготовить налету.
Можете указать меньшую компрессию (по умолчанию она равна 75%).
Можете использовать фильтр SMOOTH.
Можете отдавать в браузер PNG формат.

  Ответить  
 
 автор: vtos   (18.05.2010 в 19:11)   письмо автору
 
   для: sim5   (18.05.2010 в 17:55)
 

Здравствуйте, благодарю за ответ. Подложка планируется не одноцветная, то есть не такая, как на изображении в приложении (очень похожая, но все же не одноцветная). Поэтому накладывать нужно именно на исходное изображение.
Насчет формата PNG - попробую, спасибо.
Также, насколько я понял, нужно посмотреть исходные изображении, разобраться там с компрессией и прочими параметрами.
А вот что за SMOOTH, можете вкратце объяснить или дать ссылку на материалы?

  Ответить  
 
 автор: sim5   (18.05.2010 в 19:38)   письмо автору
 
   для: vtos   (18.05.2010 в 19:11)
 

Храните изображение подложки тоже в формате PNG, если хотите чистоты.
Функция imagefilter применяет к ресурсу изображения фильтр, тип которого указывается константой в ее втором аргументе, и для фильтра SMOOTH (сглаживание) константа равна IMG_FILTER_SMOOTH.
Загляните в мануал, там все описано.

  Ответить  
 
 автор: vtos   (18.05.2010 в 20:09)   письмо автору
 
   для: sim5   (18.05.2010 в 19:38)
 

А, понял, уже встречал этот imagefilter...
Спасибо за информацию!

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования