| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Графика > Цвет текста на картинке |
| Автор: K0SHKA 30.1.2009, 21:21 |
| Доброго времени.. Простите меня глупую за такой вопрос. Но вот незнаю уже что делать. Проблема в следующем, создаём изображение $img = imageCreateFromGif("Img.gif"); Далее устанавливаем цвет шрифта(как я поняла) $colour = imagecolorallocate($image, 0,255,255); и пишем текст на картинке. imagettftext($image, $size, $angle, $x, $y, $colour, $font,"GGG"); Проблема в том что когда картинка цветная то шрифт становиться почти равным цвету картинки(бэкграунда). И никакое значение imagecolorallocate() неможет повлиять на цвет пусть оно будет imagecolorallocate($img,0,0,0) или же imagecolorallocate($img,255,255,255).. Как мне изменить цвет текста на фоне картинки, подскожите пожалуйста. Сборка сервера стандартная (DENWER). |
| Автор: bars80080 30.1.2009, 22:37 |
| в гифе используется зарезервированное число цветов и если ты выбираешь другой, то автоматом ищется ближайший. там должна быть ещё функция добавления цвета в саму картинку |
| Автор: ksnk 30.1.2009, 23:01 |
| K0SHKA, Если в gif'е нет прозрачных областей, то все относительно просто -- прочитать gif imagecreatefromgif -- узнать его габариты -- создать картинку imagecreatetruecolor с размерами по габаритам -- скопировать гифку в эту картинку imagecopyresampled. использовать другие функции копирования - опасно для здоровья -- написать на картинке то, чего нужно А вот когда есть прозрачные области, то совсем не так просто |
| Автор: skyboy 30.1.2009, 23:06 | ||||
http://php.net/imagecolorallocate вообще говоря, после изучения http://ua.php.net/imagecolorallocate(что советую в подобных случаях делать в первую очередь), возникают мысли:
Если я правильно понимаю, возможно, первый вызов выбирает уже существующий цвет с кодом 0 из палитры картинки. И тогда цвет выводимого шрифта действительно совпадет с цветом фона.
Возможно, человек имеет в виду не черный цвет, а, опять же, компонент палитры с цветом ноль - т.е. то, что скорее всего выступает цветом фона. Эти предположения требуют проверки, которые я провести не могу сейчас. Так что прошу отнестись с должным скепсисом. |
| Автор: unicross 30.1.2009, 23:07 | ||||
Не ищется! Функция imagecolorallocate() просто возвращает False, если невозможно добавить новый цвет.
Если вместо цвета передать False, то будет цвет с #0
|