Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: imagettftext & GIF
 
 автор: ddhvvn   (08.10.2008 в 11:49)   письмо автору
 
 

Опять картиночки ))
Теперь просто надпись на картинке.

imagettftext почему то отказывается наносить текст на gif картинки!

На bmp, png, jpeg все норм! А вот на gif пустота... есть какие-нибудь мысли?

  Ответить  
 
 автор: Trianon   (08.10.2008 в 11:53)   письмо автору
 
   для: ddhvvn   (08.10.2008 в 11:49)
 

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

Что-то у Вас с выбором цветов не то....

Или Вы 257-й цвет пытаетесь создать?
Так опять же, им и другие инструменты рисовать не станут.

  Ответить  
 
 автор: sim5   (08.10.2008 в 12:15)   письмо автору
 
   для: ddhvvn   (08.10.2008 в 11:49)
 

Все пишет, это вы ошибку допускаете в чем-то.

  Ответить  
 
 автор: ddhvvn   (08.10.2008 в 12:25)   письмо автору
 
   для: sim5   (08.10.2008 в 12:15)
 

Странно... код один и тот же ведь!
На jpg, png, bmp вырисовывает текст, на gif нет!

Но может подробности прояснят ситуацию.. )

Открыватся картинка.
Дальше создается еще 1 изображение. С фоном и текстом на нем!
А дальше это изображение переносится на первоначальное функцией imagecopymerge для прозрачности ...
И все, дальше сохранение...
Вот фон присутствует на изображении, а сам текст нет!

Вот может дело в прозрачности? Хотя пробовал и со значением 100 (без прозрачности)

ДОБАВЛЕНО:
мда... странности какие-то... еще для проверки я сохраняю картинку с текстом (ту которую накладываю) в отдельный файл. В случае с gif она без текста, а в остальных с текстом...

  Ответить  
 
 автор: sim5   (08.10.2008 в 12:29)   письмо автору
 
   для: ddhvvn   (08.10.2008 в 12:25)
 

Вас Trianon (как мне показалось) должен был натолкнуть на мысль. Скорее всего вы пишите текст цветом, который за пределами 256-ой палитры. Вот вам пример надписи на gif:
<?
$image 
imagecreate(40,30);
imagecolorallocate($image0xF60xEF0xC9);
$dc imagecolorallocate($image000);
Imagettftext($image100418$dc"arial.ttf""TEST");
header("Content-type: image/gif");
imagegif($image);

Видно надпись?

  Ответить  
 
 автор: ddhvvn   (08.10.2008 в 12:35)   письмо автору
 
   для: sim5   (08.10.2008 в 12:29)
 

Нет! ) Точнее да - в отдельном скрипте! Но в отдельном и у меня все работает )))
А проблема именно где-то здесь, в "накладывании" видимо... вот только не пойму какая...

Вот мои цвета

$bg = imagecolorallocate($im, 51, 51, 51); //фон
$tc = imagecolorallocate($im, 204, 204, 204); //текст

  Ответить  
 
 автор: sim5   (08.10.2008 в 12:38)   письмо автору
 
   для: ddhvvn   (08.10.2008 в 12:35)
 

Для gif, это будет белое на черном (с поправкой на ЖК монитор).

  Ответить  
 
 автор: ddhvvn   (08.10.2008 в 12:43)   письмо автору
 
   для: sim5   (08.10.2008 в 12:38)
 

Да, почти! Я знаю, ведь я это делал =)))

Но проблема-то есть!

  Ответить  
 
 автор: sim5   (08.10.2008 в 12:43)   письмо автору
 
   для: ddhvvn   (08.10.2008 в 12:43)
 

Вы что-то не правильно делаете.

  Ответить  
 
 автор: ddhvvn   (08.10.2008 в 12:50)   письмо автору
54.1 Кб
 
   для: sim5   (08.10.2008 в 12:43)
 

Странно, странно... ))

Да, вот примерчик )

  Ответить  
 
 автор: sim5   (08.10.2008 в 12:54)   письмо автору
 
   для: ddhvvn   (08.10.2008 в 12:50)
 

Бедный В.В., не лучше ли на Д.Б./К.Р. тренироваться? :) А может лучше поглядеть код?

  Ответить  
 
 автор: ddhvvn   (08.10.2008 в 13:00)   письмо автору
 
   для: sim5   (08.10.2008 в 12:54)
 

=)))
поискал в яндексе и закралось подозрение, что проблема в imagecopymerge... а аналогичной функции пока не нашел (

кусок кода

<?php
...
$im imagecreatefromAny($_FILES['fimage']['tmp_name'], $ext);

$text iconv("WINDOWS-1251""UTF-8"$text);

$i_ar imagettfbbox($f_size0"tahoma.ttf"$text);
$gray imagecolorallocate($im515151);
$text_clr imagecolorallocate($im204204204);

$h_t abs($i_ar[5])+$i_ar[1];

$w $i_ar[2]+6;
$h $h_t+6;

$im_text imagecreatetruecolor($w$h);

imagefill($im_text00$text_clr);
imagettftext($im_text$f_size03abs($i_ar[5])+3$gray'tahoma.ttf'$text);
imagegif($im_text'xxx.gif');
$x = ($width-$i_ar[2])/2;
$y $height 3*$f_size;

imagecopymerge($im$im_text$x$y00$w$h75);
imageAny(&$im$path2img$ext);
...
?>

  Ответить  
 
 автор: sim5   (08.10.2008 в 13:14)   письмо автору
 
   для: ddhvvn   (08.10.2008 в 13:00)
 

Что-то я не понял - у вас цвет $gray это фоновый, но и пишите вы им же.

  Ответить  
 
 автор: ddhvvn   (08.10.2008 в 13:21)   письмо автору
 
   для: sim5   (08.10.2008 в 13:14)
 

не, не! ))

это я там немного не то скопировал...


...
$text_clr = imagecolorallocate($im, 51, 51, 51);
$bg_clr = imagecolorallocate($im, 204, 204, 204);

imagefill($im, 0, 0, $bg_clr);
...
imagettftext($im, 8, 0, $x_out, $y_out, $text_clr, "tahoma.ttf", $textout);
...

  Ответить  
 
 автор: sim5   (08.10.2008 в 13:25)   письмо автору
6.8 Кб
 
   для: ddhvvn   (08.10.2008 в 13:21)
 

Давай все пакуйте в архив, и точно (без глюков :) что в коде, заодно вместо imagecreatefromAny() то что должно быть как исходинк и т.п.. Ибо то, что опять показано, будет работать.

PS. Короче. У вас проблема скорее всего в том, что в итоге (при сохранении в gif-фрмате), цвет индекса надписи получает цвет фона, и вы не видите вашу надпись. Вы уперлись в цвет 51, 51, 51, а он в итоге будет около черного, и на черной подложке ... Вы посмотрите 256-ую палитру цветов. На ЖК в ней вообще некоторые как одно и тоже виглядят. Посмотрите как на примере выглядит надпись на полупрозрачном боксе, выполненная белым цветом и вашим (справа). А если фон будет темным, тогда...?

  Ответить  
 
 автор: ddhvvn   (08.10.2008 в 13:40)   письмо автору
 
   для: sim5   (08.10.2008 в 13:25)
 

Разобрался блин! Проглядел как всегда! (
Вот как ток при других форматах работало странн ))

imagecolorallocate я делал к первоначальному изображению, а надо то к тому, которое я накладываю... )

  Ответить  
 
 автор: ddhvvn   (08.10.2008 в 13:53)   письмо автору
 
   для: sim5   (08.10.2008 в 13:25)
 

см. выше ... )

  Ответить  
 
 автор: sim5   (08.10.2008 в 14:00)   письмо автору
 
   для: ddhvvn   (08.10.2008 в 13:53)
 

Ну понятно. Не то, да еще и не туда, страшная смесь... ;-)

  Ответить  
 
 автор: ddhvvn   (08.10.2008 в 13:04)   письмо автору
 
   для: sim5   (08.10.2008 в 12:54)
 

-

  Ответить  
 
 автор: ddhvvn   (08.10.2008 в 13:05)   письмо автору
 
   для: sim5   (08.10.2008 в 12:54)
 

-

  Ответить  
 
 автор: ddhvvn   (08.10.2008 в 13:05)   письмо автору
 
   для: sim5   (08.10.2008 в 12:54)
 

Блин с форумом че или у меня с нэтом?

  Ответить  
 
 автор: Trianon   (08.10.2008 в 12:58)   письмо автору
 
   для: ddhvvn   (08.10.2008 в 12:35)
 

-

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования