Текст -> 
Вот так то. Наша задача сделать из текста фотографию на PHP. Для этой задачи нам понадобиться
Библиотека GD. Задача довольно сложная, но я Вам помогу разобраться.
Для этого нам нужен файл win2uni.php вот его содержимое:
Разбираться в верхнем коде я не стану.
А теперь посмотрим на сам файл создания изображения:
На самом деле библиотека GD и GD2 очень хорошая на ней можно даже Смайлы рисовать но об этом позже.

Вот так то. Наша задача сделать из текста фотографию на PHP. Для этой задачи нам понадобиться
Библиотека GD. Задача довольно сложная, но я Вам помогу разобраться.
Для этого нам нужен файл win2uni.php вот его содержимое:
<?php
// Преобразование Windows 1251 -> Unicode
function win2uni( $s )
{
$s = convert_cyr_string($s,'w','i'); // преобразование win1251 -> iso8859-5
// преобразование iso8859-5 -> unicode:
for ( $result='', $i=0; $i175 )?"&#".( 1040+( $charcode-176 ) ).";":$s[$i];
}
return $result;
}
?>
Разбираться в верхнем коде я не стану.
А теперь посмотрим на сам файл создания изображения:
<?php
// Вот нам и понадобился файл win2uni.php
require( 'win2uni.php' );
// Задаем текст
$txt = "Текст";
// Узнаем сколько букв в тексте с помощу функции strlen()
$txtstr = strlen( $txt );
// Узнаем ширину картины ( Это для каждого шрифта и прочего разное)
$txtstrlen = $txtstr * 20;
// Теперь назначаем константу ширины, высоты, шрифта, и размера шрифта.
//Тут все должно быть предельно ясно.
define('WIDTH', $txtstrlen);
define('HEIGHT', 60);
define('FONT_NAME', '42864.ttf');
define('FONT_SIZE', 30);
// Создаем новое изображение, в случае ошибки выводим ее.
$image = imagecreatetruecolor( WIDTH, HEIGHT ) or die( 'Cannot create image' );
// Не забываем преобразовать текст в кодировку Unicode
$text = win2uni( $txt );
$coord = imagettfbbox(
FONT_SIZE, // размер шрифта ( В данном случае у нас константа)
0, // угол наклона шрифта (0 = не наклоняем)
FONT_NAME, // имя шрифта, а если точнее, ttf-файла ( В данном случае у нас константа)
$text // собственно, текст
);
$width = $coord[2] - $coord[0];
$height = $coord[1] - $coord[7];
// Зная ширину и высоту изображения, располагаем текст по центру:
$X = (WIDTH - $width) / 2;
$Y = (HEIGHT + $height) / 2;
imagettftext(
$image, // как всегда, идентификатор ресурса
FONT_SIZE, // размер шрифта ( В данном случае у нас константа)
0, // угол наклона шрифта
$X, $Y, // координаты (x,y), соответствующие левому нижнему
// углу первого символа
0xFFFFFF, // цвет шрифта
FONT_NAME, // имя ttf-файла ( В данном случае у нас константа)
$text
);
// Назначаем, что тут у нас PNG файл, создаем его и освобождаем память
header( 'Content-type: image/png' );
imagepng( $image );
imagedestroy( $image );
// На этом все.
?>
Комментариев нет:
Отправить комментарий