Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Закрытая темаСоздание новой темы Создание опроса
> Текст на картинку, Проблемы 
V
    Опции темы
gta4kv
Дата 3.4.2007, 19:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 8
Всего: 91



Помогите пожалуйста,

сегодня столкнулся с такой ошибкой,

пытался наложить текст на картинку,

как не бился, не получилось,

сначала были каракули, потом "& # 1105; & #1096  etc"

Код:

Код

<?php
ob_start(); 
function iso2uni ($iso){
    $uni="";
    for ($i=0; $i < strlen($iso); $i++){
        $thischar=substr($iso,$i,1);
        $charcode=ord($thischar);
        $uni.=($charcode>175)?"&#".(1040+($charcode-176)).";":$thischar;
    }
    return $uni;
}  
$text = iso2uni(convert_cyr_string($text, "w", "i"));

$im = imageCreateFromGif("button.gif");

$color = imageColorAllocate($im, 0, 0, 0);

$px = (imageSX($im)-6.5*strlen($text))/2;

imageString($im, 3, $px, 1, $text, $color);

Header("Content-type: image/png");

imagePng($im);
    
imageDestroy($im);
ob_end_flush();
?>



 smile

Добавлено через 1 минуту и 19 секунд
Заранее благодарен опять же)

Это сообщение отредактировал(а) gta4kv - 3.4.2007, 19:54
PM MAIL   Вверх
mishaSL
Дата 4.4.2007, 09:03 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

Репутация: 2
Всего: 54



Цитата(gta4kv @  3.4.2007,  19:53 Найти цитируемый пост)
сначала были каракули, потом "& # 1105; & #1096  etc"


Для того чтобы русский текст на картинке отображался нормально, необходимо его писать в кодировке utf-8, для этого можете преобразовывать кодировку с помощью функции iconv


--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
mishaSL
Дата 4.4.2007, 18:29 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

Репутация: 2
Всего: 54



Цитата(gta4kv @  4.4.2007,  18:04 Найти цитируемый пост)
Не могу найти сам модуль..

Какой модуль?

Добавлено через 3 минуты и 28 секунд
Цитата(gta4kv @  4.4.2007,  16:01 Найти цитируемый пост)
Можно пример использования? )

Код

$text = 'текст текст';//это текст в cp1251
$im = imageCreateFromGif("button.gif");
$color = imageColorAllocate($im, 0, 0, 0);
$px = (imageSX($im)-6.5*strlen($text))/2;
$text = iconv("windows-1251","UTF-8", $text); // преобразовываем в utf-8
imageString($im, 3, $px, 1, $text, $color);
Header("Content-type: image/png");
imagePng($im);
    
imageDestroy($im);



--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
gta4kv
Дата 7.4.2007, 12:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 8
Всего: 91



Код
<?php
ob_start(); 
$text = 'текст текст';//это текст в cp1251
$im = imageCreateFromGif("button.gif");
$color = imageColorAllocate($im, 0, 0, 0);
$px = (imageSX($im)-6.5*strlen($text))/2;
$text = iconv("windows-1251","UTF-8", $text); // преобразовываем в utf-8
imageString($im, 3, $px, 1, $text, $color);
Header("Content-type: image/png");
imagePng($im);
    
imageDestroy($im);
ob_end_flush();
?>


Так не пашет.. Закарюки тоже
PM MAIL   Вверх
mishaSL
Дата 11.4.2007, 21:01 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

Репутация: 2
Всего: 54



Отключи кеширование, т.е. убери функции ob_
Ошибки какие-нибудь выдает (уровень ошибок поставь error_reporting(E_ALL ^ E_NOTICE);)?


--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
mishaSL
Дата 12.4.2007, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

Репутация: 2
Всего: 54



Цитата(gta4kv @  12.4.2007,  16:00 Найти цитируемый пост)
Нефига.
Не пашет.

Напиши что за ошибки. Если их нет, то что выводит? Файл(в котором PHP код) в какой кодировке сохранен?


--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
mishaSL
Дата 12.4.2007, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

Репутация: 2
Всего: 54



gta4kv, воспользуйтесь TTF шрифтами imagettftext() точно должно сработать.


--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
gta4kv
Дата 12.4.2007, 19:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 8
Всего: 91



Будешь смеяться, не умею им пользоваться.
А тем паче рассчитывать координаты.
 smile 
PM MAIL   Вверх
mishaSL
Дата 12.4.2007, 19:38 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

Репутация: 2
Всего: 54



Цитата(gta4kv @  12.4.2007,  19:00 Найти цитируемый пост)
Будешь смеяться, не умею им пользоваться.

Вот накидал пример:
Код

<?php
header("Content-type: image/png");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");

$text = 'текст текст';
$text = iconv("windows-1251","UTF-8",$text); // приводим текст в utf-8
$src_img = imagecreatefromgif('./test.gif'); // грузим картинку, если jpeg, то imagecreatefromjpeg() и т.д.
$color = imagecolorallocate ($src_img, 0, 0, 0);
$font = "./tahomabd.ttf"; // определяем каким шрифтом рисуем, сам файл шрифта ложим туда же где и скрипт
$size = imagettfbbox(14, 0, $font, $text); //возвратит размеры нужной нам строки - http://ru2.php.net/imagettfbbox
$height = $size[1]-$size[7]; // узнали высоту, анагогично можно узнать ширину
imagettftext($src_img, 14, 0, 25, $height+20, $color, $font, $text); //написали все что надо
imagepng($src_img);//вывели в браузер, пусть в PNG или можно в чем угодно
imagedestroy($src_img);
?>

Проверил работает.
Если что непонятно спрашивай. Главное шрифт бери TTF и чтобы он кирилицу поддерживал. Посмотреть шрифты на WINDOWS можно в C:\WINDOWS\Fonts

Это сообщение отредактировал(а) mishaSL - 12.4.2007, 19:47


--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
gta4kv
Дата 12.4.2007, 19:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 8
Всего: 91



Тока одно изменение:
Код

imagettftext($src_img, 14, 0, 25, $height+2 /*а не 20*/, $color, $font, $text); //написали все что надо


А то у меня вся картнка 150х20  smile 



Это сообщение отредактировал(а) PARROT - 12.4.2007, 20:03
PM MAIL   Вверх
PARROT
Дата 12.4.2007, 20:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 2
Всего: 50




 ! 
PARROT
Уважаемый gta4kv, весь Ваш флейм, как и скрытай мат, как и "нафиги" Ваши я буду нещадно удалять, у нас тут не подворотня! При написании постов на нашем форуме, пользуйтесь чистым русским языком, пожалуйста. За следующий раз буду наказывать кирпичами. Спасибо!
PS: Тут почитайте правила: http://forum.vingrad.ru/s/7e9242369ab0b951...ct-SR/f-27.html  
Флеймим мы в другом разделе.
Накручивание счетчиков в виде бессмысленных постов, тоже не приветствуется   :rtfm


Добавлено через 6 минут и 25 секунд
Тема закрыта.


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
  
Закрытая темаСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Графика | Следующая тема »


 




[ Время генерации скрипта: 0.1068 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.