|
|
|
| Помогите, пожалуйста, решить такую проблему.
Существует страница index.html, а в ней текст
Привидите, пожалуйста, пример любой картинки, чтобы она отобразилась в браузере. | |
|
|
|
|
|
|
|
для: Ziq
(12.05.2005 в 16:14)
| | Ту проблему я решил, но появилась новая. Когда я пишу текст с помощью imagettftext он получается сглаженным (как в PhotoShope), а если маленький размер шрифта, то выглядит плохо. Как мне отключить сглаживание. | |
|
|
|
|
|
|
|
для: Ziq
(12.05.2005 в 20:46)
| | не очень понятно очём идёт речь! поподробнне! | |
|
|
|
|
|
|
|
для: Ziq
(12.05.2005 в 20:46)
| | текст в картинку можно вставлять спомощью imagestring(); | |
|
|
|
|
|
|
|
для: Ziq
(12.05.2005 в 20:46)
| | Попробуйте поработать с функцией imageantialias()
Она включает и отключает опции сглаживания при рисовании.
http://www.softtime.ru/dic/id_dic=398&id_group=15 | |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(13.05.2005 в 04:43)
| | Я приложил картинку, которая получается при выполнении вот этого скрипта
<?
header("Content-type:image/gif");
$image=Imagecreatetruecolor(100,100);
imageantialias ($image, on);
$color1 = imagecolorallocate($image,255,240,0);
$color2 = imagecolorallocate($image,255,255,255);
imagettftext($image,8,0,75,40,$color1,"tahoma.ttf","33");
ImageString($image,1,70,2,"122",$color1);
ImageString($image,1,70,11,"122",$color2);
ImageString($image,1,70,20,"122",$color2);
ImageGIF($image);
?>
|
Как видно функция imagestring() делает то, что я просил, но у нее нельзя выбрать шрифт. А задача в следующем: написать текст на картинке 9 Arial'ом своим цветом. | |
|
|
|
|
|
|
|
для: Ziq
(13.05.2005 в 07:05)
| |
imagestring("сам имейдж", "шрифт - указывается цифрой", x, y, "вставляемая строка", "цвет");
|
ВОТ! | |
|
|
|
|
|
|
|
для: Ziq
(13.05.2005 в 07:05)
| | > функция imagestring() делает то, что я просил, но у нее нельзя выбрать шрифт.
Вообще то можно и у нее выбрать шрифт.
int imagestring (resource image, int font, int x, int y,
string s, int color)
Горизонтальное рисование строки s на изображении image.
font — идентификатор шрифта. Если font равен 1, 2, 3, 4 или 5, то используется встроенный шрифт (большее число соответствует шрифту большего размера).
|
http://www.softtime.ru/dic/id_dic=390&id_group=15
Загрузить нужный шрифт можно фунцией
int imagepsloadfont (string filename)
Загружает шрифт в формате PostScript Type1 из файла filename. При успешной загрузке возвращается идентификатор шрифта. В противном случае возвращается false.
|
http://www.softtime.ru/dic/id_dic=381&id_group=15
Так, а imagettftext() чем не подходит? Тем, что сглаженный текст получается? Мне кажется, что и ImageString также рисует. Разве нет? | |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(14.05.2005 в 04:59)
| | Вы можете ответить проще. Напишите пожалуйста любой текст (9 размер Tahoma)на картинке с помощью PHP. | |
|
|
|
|
|
|
|
для: Ziq
(14.05.2005 в 06:56)
| | Сегодня уже не смогу выложить код, т.к. убегаю. Выложу к понедельнику. | |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(14.05.2005 в 15:39)
| | а у меня русский язык не поддерживает :( | |
|
|
|
|
|
|
|
для: FaStY
(15.05.2005 в 01:59)
| | > а у меня русский язык не поддерживает :(
Какой функцией выводите текст? Imagettftext с загрузкой TrueType-шрифта (ttf)?
Здесь, видимо, есть проблемы с кодировками. Например, arial.ttf, у которого постоянно проблемы с кодировками, у меня тоже в краказяблах выводится. А вот, например, arbat.ttf – нормально. Так что экспериментируйте со шрифтами. Попробуйте найти тот, что будет выводиьтся в читаемом виде. | |
|
|
|
|
|
|
|
для: Ziq
(14.05.2005 в 06:56)
| | Попробовать написать. Оказалось, что все не так просто.
Чтобы в функции ImageString вместо встроенных шрифтов использовать свои необходимо, чтобы выполнялись условия:
1. Наличие шрифта PostScript Type 1
2. PHP должен быть скомпилирован с опцией --enable-t1lib
Оба условия оказались проблемными. Бесплатных кириллических PostScript Type 1 шрифтов днем с огнем не сыщешь. А когда нашел, то оказалось, что и на локальной машине и на хосте php не может работать с PostScript-шрифтами, т.к. он скомпилирован без опции --enable-t1lib.
Остается вопрос по imagettftext(), в которой можно и шрифт задавать и высоту его.
Чем плоха она? Сглаживанием?
Чтобы отключить сглаживание при выводе текста нужно задать отрицательные значения цвета.
<?
$color3 = imagecolorallocate($image,-255,-240,0);
imagettftext($image,9,0,69,40,$color3,"tahoma.ttf","1234");
?>
|
Размер шрифта здесь указывается в пикселях. | |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(15.05.2005 в 06:14)
| | К сожалению видимо все нет так просто. Если писать отрицательным цветом на черном фоне, то все нормально (хотя качество очень низкое), ну а если поставить на задний план градиент, то все портиться (см. прикреп. файл). | |
|
|
|
|
|
|
|
для: Ziq
(15.05.2005 в 07:30)
| | >ну а если поставить на задний план градиент, то все портиться
А у меня нормально вышло. Код и результат прикладываю. А градиент каким способом ставите?
<?
header("Content-type:image/png");
$image=Imagecreatetruecolor(100,100);
$tile = imagecreatefromjpeg("tile.jpg");
imagesettile($image, $tile);
imagefill($image, 1, 1, IMG_COLOR_TILED);
$color = imagecolorallocate($image,-55,-40,0);
imagettftext($image,8,0,20,50,$color,"tahoma.ttf","12345");
Imagepng($image,'',100);
?>
|
| |
|
|
|
|