Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: imagecreate
Форумы портала PHP.SU » PHP » Программирование на PHP » imagecreate

Страниц (2): [1] 2 »
 

1. xhugo - 19 Марта, 2011 - 11:53:19 - перейти к сообщению
Создаю картинку с текстом:
PHP:
скопировать код в буфер обмена
  1. <? header("Content-type: image/png");
  2. $img = imagecreate(480,400);
  3. $black = ImageColorAllocate($img, 0, 0, 0);
  4. $green = ImageColorAllocate($img, 0, 255, 0);
  5. $white = ImageColorAllocate($img, 255, 255, 255);
  6. $trans = ImageColorTransparent($img, $white);
  7.  
  8. $tc=$_POST['nm'];
  9.  
  10. #$tc="Laa is so happy to see you!ddddddddddddddddddd";
  11. ImageFill($img, 0, 0, $black);
  12. ImageString($img , 2, 130, 180, $tc, $white);
  13. //ImageTTFText($img, 18, 0, 45, 45, $green, "arial.TTF", "$text");
  14. ImageTTFText($img, 18, 0, 25, 45, $green, "arial.TTF", "$text");
  15. ImagePng($img);
  16. ImageDestroy($img); ?>


CODE (html):
скопировать код в буфер обмена
  1. <form action="ded.php" method="post">
  2. <textarea cols="30" rows="10" name="nm"></textarea><br>
  3. <button>OK</button>
  4. </form>


если пишу с переносом строки,
то переноса нет, чисто делает какой то стронный символ.
в чем проблема?
2. Champion - 19 Марта, 2011 - 12:16:34 - перейти к сообщению
Видимо, потому что ImageString когда встречает символ перевода строки, ничего никуда не переводит, а помещает на картинку каждый символ просто правее предыдущего.
3. xhugo - 19 Марта, 2011 - 12:26:17 - перейти к сообщению
Как тогда решить проблему?
4. Champion - 19 Марта, 2011 - 12:34:20 - перейти к сообщению
Ну например вывести с помощью ImageTTFText
5. xhugo - 19 Марта, 2011 - 17:40:07 - перейти к сообщению
Шрифт взял этот rghost.ru/4834474
PHP:
скопировать код в буфер обмена
  1. <?
  2.  
  3. header("Content-type: image/png");
  4. $img = imagecreate(540,400);
  5. $black = ImageColorAllocate($img, 0, 0, 0);
  6. $green = ImageColorAllocate($img, 0, 255, 0);
  7. $white = ImageColorAllocate($img, 255, 255, 255);
  8. $trans = ImageColorTransparent($img, $white);
  9. ##
  10.  $tc=$_POST['nm'];
  11. //$tc="hello|привет";
  12. ImageFill($img, 0, 0, $black);
  13. //ImageString($img , 2, 130, 180, $tcc2, $white);
  14. ImageTTFText($img, 18, 0, 100, 195, $green, "arial.ttf", "$tc");
  15. ImagePng($img);
  16.  ?>

если передовать post на скрипт, то русские буквы становится всякими символами.
а если просто в настройках $tc="текст";
то все норм.
что нитак?
6. vsll - 19 Марта, 2011 - 18:14:05 - перейти к сообщению
Цитата:
imageloadfont() загружает пользовательский растровый шрифт и возвращает идентификатор шрифта (который всегда больше 5, поэтому не конфликтует со встроенными шрифтами)

http://php.su/functions/?imageloadfont
7. xhugo - 19 Марта, 2011 - 19:02:49 - перейти к сообщению
а есть стандартный шрифт? т.е. без загрузки сторонних?
ImageTTFText

а imageloadfont не хочет работать с ttf
8. ALEN - 19 Марта, 2011 - 20:00:30 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. $text_color = imagecolorallocate ($im, 233, 14, 91);
  2. imagestring ($im, 50, 5, 5,"A Simple Text String", $text_color);
9. vsll - 19 Марта, 2011 - 20:04:21 - перейти к сообщению
Попробуйте обозначить так: var $font_file = 'fonts/myfont.ttf';
или шрифт возьмите попроще (подберите из простых, какой нормально отображается)
10. JustUserR - 20 Марта, 2011 - 00:14:05 - перейти к сообщению
xhugo пишет:
Если пишу с переносом строки, то переноса нет, чисто делает какой то стронный символ.
Для осуществления решения предполагаемой задачи, заключающеся в проведении включения в целевой генерируемых графических объект многострочного информационного поля, необходимо обеспечение дефиниции сопоставленного элементного уровня трактования для передаваемого блока данных, позволяющего осуществить включение требуемых вложенных управляющих и ограничивающих элеменов
11. xhugo - 20 Марта, 2011 - 12:45:04 - перейти к сообщению
imagestring - переводит русские буквы и перенос строки в иероглифы.
ImageTTFText - только переводит русские буквы в иероглифы.
<?
header("Content-type: image/png");
$img = imagecreate(540,400);
$black = ImageColorAllocate($img, 0, 0, 0);
$green = ImageColorAllocate($img, 0, 255, 0);
$white = ImageColorAllocate($img, 255, 255, 255);
$trans = ImageColorTransparent($img, $white);
$tc=$_POST['nm'];
ImageFill($img, 0, 0, $black);
ImageTTFText($img, 18, 0, 100, 195, $green, "arial.ttf", "$tc");
ImagePng($img);
ImageDestroy($img);
?>

как решить проблему с ImageTTFText?
12. ALEN - 20 Марта, 2011 - 12:59:44 - перейти к сообщению
xhugo
Перенос строки почему бы не реализовать вторым вызовом функции?
13. xhugo - 20 Марта, 2011 - 15:18:49 - перейти к сообщению
по поводу переноса пофиг.
там у всех не читает русские буквы - вот проблема.
14. Champion - 20 Марта, 2011 - 15:28:51 - перейти к сообщению
$tc = iconv('windows-1251','utf-8', $_POST['nm']);
15. ALEN - 20 Марта, 2011 - 15:38:35 - перейти к сообщению
xhugo
Используемый шрифт должен поддерживать кириллические символы (хотя бы те которые тебе нужны)

Champion
Думал по этому вопросу, но мы работаем внутри, поэтому проблем не должно возникать.

 

Powered by ExBB FM 1.0 RC1