#php #gd #php-gd
#php #gd #php-gd
Вопрос:
Я использую этот код для создания изображений с текстом, написанным на нем, с прозрачным фоном.
<?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
Комментарии:
1. Не совсем понятно, что вы имеете в виду: не могли бы вы предоставить образец графики для демонстрации проблемы? Кроме того, я не уверен, что вы пытаетесь здесь сделать, но если вы используете эту графику для отображения текста на своем сайте, возможно, удастся добиться этого лучше с помощью HTML / CSS без использования графики вообще. Но это зависит от того, что вы пытаетесь сделать.
2. @Spudley этот код выводит это изображение с надписью «тестирование» в нем imageshack.us/photo/my-images/851/imgsi.png в алфавитах «e», «s», «n» и «g» на границах есть маленькие черные точки, поэтому я не хочу, чтобы эти границы
3. повторите мой второй момент: если все, что вы делаете, это создаете графику, чтобы у вас был текст необычными шрифтами, вы можете сделать это в обычном HTML / CSS, даже со специальным шрифтом, используя CSS
@font-face
. Работает во всех браузерах. См randsco.com/index.php/2009/07/04/p680 и paulirish.com/2009/bulletproof-font-face-implementation-syntax для получения дополнительной информации.4. @Spudley спасибо за ссылки, но мне, возможно, придется использовать изображение в проекте, но пока не уверен. Спасибо
Ответ №1:
Формат GIF не может обрабатывать альфа-прозрачность. Он может иметь только 100% прозрачных (= невидимых) или 100% непрозрачных (= видимых) пикселей.
Кажется, что ваш текст имеет сглаженные, мягкие края.
Эти края не на 100% прозрачны, но они также не на 100% непрозрачны — они представляют собой смесь переднего плана и фона. Это делает их более мягкими.
Поскольку формат GIF не может справиться с этими нюансами, библиотека использует смесь зеленого и черного для имитации «более слабого» зеленого.
Если вы используете формат PNG, проблема должна исчезнуть: PNG поддерживает альфа-прозрачность. Есть некоторые проблемы, которые вам нужно изучить, если вам все еще нужна поддержка IE6, но для любого другого браузера это будет работать нормально сразу.
Комментарии:
1. вы правы, я решил это с помощью png два дня назад, спасибо, спасибо.