Граница алфавита в прозрачном фоновом изображении нежелательна? - PullRequest
2 голосов
/ 14 октября 2011

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

 <?php
 // Set the content-type
 header('Content-Type: image/gif');

 // Create the image
 $im = imagecreatetruecolor(400, 150);

 // Create some colors

 $black = imagecolorallocate($im, 0, 0, 0);
 $acolor = imagecolorallocate($im, 153, 204, 153);
 imagecolortransparent($im, $black);

 // The text to draw
 $text = 'Testing...';
 // Replace path by your own font path
 $font = 'arial.ttf';

 // Add the text
 imagettftext($im, 50, 0, 10, 100, $acolor, $font, $text);

 // Using imagegif()
 imagegif($im,"img.gif");
 imagedestroy($im);
 ?>

Но текст, написанный на img.gif, имеет некоторый нежелательный цвет (черный) на границах алфавитов'е, с, п, г').Как я могу закончить этот цвет. Сгенерированное изображение image
Сайт загрузки шрифтов arial: http://code.google.com/p/ireader/downloads/detail?name=arial.ttf

1 Ответ

2 голосов
/ 10 декабря 2011

Формат GIF не поддерживает альфа-прозрачность.Он может содержать только 100% прозрачных (= невидимых) или 100% непрозрачных (= видимых) пикселей.

Ваш текст имеет сглаженные мягкие края.

Эти края не являются прозрачными на 100%, но они также не являются непрозрачными на 100% - они представляют собой смесь переднего и заднего плана.Это делает их более мягкими.

Поскольку формат GIF не может справиться с этими нюансами, библиотека использует смесь зеленого и черного для имитации «более слабого» зеленого.

Если вы используетеВ формате PNG проблема должна исчезнуть: PNG поддерживает альфа-прозрачность.Есть некоторые проблемы, на которые нужно обратить внимание, если вам все еще требуется поддержка IE6, но для любого другого браузера это будет работать сразу же.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...