[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вывод склеенной картинки
Guest
есть некоторый текст, например "текст"
на экран надо вывести картинку в которой написано "текст"
Как такое делается в пхп? Функции какие может есть?

сначала наверное надо создать картинки с каждой буквой алфавита по отдельности всякими шрифтами.
А как потом вывести не 5 картинок с бувами т,е,к,с,т а одну целую - "текст"?



Спустя 25 минут, 45 секунд (12.03.2012 - 09:42) Visman написал(а):
Фнукция imagestring() http://www.php.su/functions/?imagestring
И некоторые другие функции из графических http://www.php.su/functions/?cat=image

Спустя 4 часа, 34 минуты, 58 секунд (12.03.2012 - 14:17) Guest написал(а):
спасибо!
посмотрел ссылки. погуглил еще всякое..
получилось вот что
<?php
$str="текст";
header ("Content-type: image/png");
$im = @imagecreate (200, 40)
or die ("Cannot Initialize new GD image stream");
$background_color = imagecolorallocate ($im, 255, 255, 255);
$text_color = imagecolorallocate ($im, 233, 14, 91);
$x=10;
$y=10;
$font=5;
imagestring ($im, $font, $x, $y,$str, $text_color);
imagepng ($im);
?>

то что надо, да вот только русский язык не распознает..
почитал в инете пишут, что у пхп встроенных шрифтов мало, потому нужно загружать свои скрипты при помощи
imageloadfont()
вот только примеров я не нашел..
как загрузить эти шрифты не пойму?
там в одно примере был файл с gd а шрифты там в ttf..

Спустя 2 минуты, 13 секунд (12.03.2012 - 14:20) Visman написал(а):

Спустя 17 минут, 57 секунд (12.03.2012 - 14:38) ADiel написал(а):
header('Content-Type: image/png');

$im = imagecreatetruecolor(200, 40) or die ("Cannot Initialize new GD image stream");
$background_color = imagecolorallocate ($im, 255, 255, 255);
$text_color = imagecolorallocate ($im, 233, 14, 91);
$x=10;
$y=10;
$font=5;


$text = 'Проверка...';

$font = './arial.ttf';


imagettftext($im, 20, 0, 11, 21, $text_color, $font, $text);



imagepng($im);
imagedestroy($im);


Шрифт лежит в папке со скриптом

Спустя 28 минут, 30 секунд (12.03.2012 - 15:06) sergeiss написал(а):
Цитата (Guest @ 12.03.2012 - 15:17)
то что надо, да вот только русский язык не распознает..

Функция imagettftext требует, чтобы текст был в кодировке UTF-8. Поэтому, если у тебя скрипт в другой кодировке, то нужно делать переконвертацию, с помощью iconv().

Спустя 1 день, 53 минуты, 47 секунд (13.03.2012 - 16:00) ТС написал(а):
спасибо, работает! а как теперь это вставить на страничку? :)
пишут что заголловок уже отправлен.. убираю
header ("Content-type: image/png");

пишу вверху
    <HEAD>
<META
http-equiv=content-type content="text/html,image/png; charset=utf-8">
</head>

а вместо картинки выходит куча символов...

что делать?

Спустя 17 минут, 29 секунд (13.03.2012 - 16:17) Ser18 написал(а):
Теперь в другом файле вставляйте этот файл как картинку через тег <img src="image.php" />

Спустя 31 минута, 35 секунд (13.03.2012 - 16:49) Guest написал(а):
спасибо.
но всеравно не получается..
<img src="
<?PHP
//преобразование текста в картинку
function cr_im(
$text){
$textsize=mb_strlen($text)*11+20;
header ("
Content-type: image/png");
$im = @imagecreate ($textsize, 40)
or die ("
Cannot Initialize new GD image stream");
$background_color = imagecolorallocate ($im, 255, 155, 255);
$text_color = imagecolorallocate ($im, 0, 0, 0);
$x=10;
$y=30;
$size=16;
$ugol=0;
$font='ariblk.ttf';
imagettftext(
$im, $size, $ugol, $x, $y, $text_color, $font, $text);
imagepng (
$im);
imagedestroy(
$im);
}

$text="тест";
cr_im(
$text);
?>

как это вывести на экран? всеравно кучу символов показывает, вместо картинки

Спустя 55 секунд (13.03.2012 - 16:50) Guest написал(а):
вариант с <img src="image.php" />
работал.
но вот только в тот файл надо инклюдить другой с переменными как я понимаю, а тогда возникает тоже..

Спустя 10 минут, 29 секунд (13.03.2012 - 17:00) Ser18 написал(а):
Создаете файл (картинку) с заголовком
header ("Content-type: image/png");


дальше пишите код который эту картинку рисует

Сохраняете его, например: image.php

Создаете второй файл например: index.php

И вставляете туда тег <img src="image.php" />

Спустя 16 часов, 8 минут, 2 секунды (14.03.2012 - 09:08) ТС написал(а):
итак:
есть файл test.php

<!DOCTYPE html>
<
html>
<
HEAD>
<
META http-equiv=content-type content="text/html charset=utf-8">
</
HEAD>
<
body>
<?php
$str="некоторый текст";
?>
<img src="image.php" />
</
body>
</
html>


есть файл image.php

<?php
//файл из которого берется текст
include 'test.php';
//функция преобразование текста в картинку
function create_image($text){
header ("Content-type: image/png");
$textsize=mb_strlen($text)*11+20;
$im = @imagecreate ($textsize, 40)
or die ("Cannot Initialize new GD image stream");
$background_color = imagecolorallocate ($im, 255, 155, 255);
$text_color = imagecolorallocate ($im, 0, 0, 0);
$x=10;
$y=30;
$size=16;
$ugol=0;
$font = 'ariblk.ttf'; //нужно скачать шрифт и положить в папку со скриптом
imagettftext($im, $size, $ugol, $x, $y, $text_color, $font, $text);
imagepng ($im);
imagedestroy($im);
}
//преобразование текста
create_image($str);
?>


Появляется ошибка
Warning: Cannot modify header information - headers already sent by (output started at Z:\home\localhost\www\test.php:7) in Z:\home\localhost\www\image.php

[/php]
что делать? как я понимаю при инклюде видимо включаетcя text/html , а потому image/png не срабатывает..

Спустя 11 минут, 39 секунд (14.03.2012 - 09:20) Ser18 написал(а):
<?php
header ("Content-type: image/png");
//файл из которого берется текст
include 'test.php';
//функция преобразование текста в картинку
function create_image($text){
$textsize=mb_strlen($text)*11+20;
$im = @imagecreate ($textsize, 40)
or die ("Cannot Initialize new GD image stream");
$background_color = imagecolorallocate ($im, 255, 155, 255);
$text_color = imagecolorallocate ($im, 0, 0, 0);
$x=10;
$y=30;
$size=16;
$ugol=0;
$font = 'ariblk.ttf'; //нужно скачать шрифт и положить в папку со скриптом
imagettftext($im, $size, $ugol, $x, $y, $text_color, $font, $text);
imagepng ($im);
imagedestroy($im);
}
//преобразование текста
create_image($str);
?>

Спустя 7 минут, 13 секунд (14.03.2012 - 09:27) Guest написал(а):
спасибо.. теперь другая ошибка:
появляется изображение с надписью типа "изображение не может быть показанно так как содержит ошибки"..

Спустя 1 час, 33 минуты, 13 секунд (14.03.2012 - 11:00) Guest написал(а):
ураа заработало!
вот, может кому пригодится:

в файл генерации изображения:
create_image($_GET["text"]);

а в основной файл:
<img src="image.php?text=<?=$text; ?>" />
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.