Алфавитная рамка в прозрачном фоновом изображении нежелательна?

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

 <?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, имеет нежелательный цвет (черный) на границах алфавитов ('e, s, n, g'). Как я могу закончить этот цвет. Сгенерированное изображение:
Сайт загрузки шрифта Arial: http://code.google.com/p/ireader/downloads/detail?name=arial.ttf< /а>


person Ali Nouman    schedule 14.10.2011    source источник
comment
Не совсем понятно, что вы имеете в виду: не могли бы вы предоставить образец графика для демонстрации проблемы? Кроме того, я не уверен, что вы пытаетесь здесь сделать, но если вы используете эту графику для отображения текста на своем сайте, возможно, лучше добиться этого с помощью HTML/CSS без использования графики вообще. Но это зависит от того, что вы пытаетесь сделать.   -  person Spudley    schedule 11.10.2011
comment
@Spudley этот код выводит это изображение с надписью «тестирование» imageshack.us/ photo/my-images/851/imgsi.png в алфавите «e», «s», «n» и «g» есть немного черного на границах, поэтому я не хочу, чтобы эти границы   -  person Ali Nouman    schedule 11.10.2011
comment
Что касается моего второго замечания: если все, что вы делаете, это создаете графику, чтобы иметь текст с необычными шрифтами, вы можете сделать это в простом HTML/CSS, даже со специальным шрифтом, используя CSS @font-face. Работает во всех браузерах. См. randsco.com/index.php/2009/07/04/p680 и paulirish.com/2009/bulletproof-font-face-implementation- синтаксис для получения дополнительной информации.   -  person Spudley    schedule 11.10.2011
comment
@Spudley спасибо за ссылки, но, возможно, мне придется использовать изображение в проекте, но я еще не уверен. Спасибо   -  person Ali Nouman    schedule 11.10.2011


Ответы (1)


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

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

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

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

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

person Pekka    schedule 10.12.2011
comment
Вы правы, я решил это с помощью png два дня назад, спасибо. - person Ali Nouman; 10.12.2011