Код: Выделить всё
<?
$text= "Текст";
$img = imagecreate('44', '15');
$back = imagecolorallocate($img, 218, 218 ,218);
$black = imagecolorallocate($img, 0, 0, 0);
imageline($img, 0, 0, 43, 0, $black);
imageline($img, 0, 0, 0, 14 , $black);
imageline($img, 0, 14, 43, 14 , $black);
imageline($img, 43, 0, 43, 14 , $black);
imagestring($img,3,5,0,$text,$black);
imagepng($img);
?>
Вопрос: Каким образом можно задать шрифт/кодировку для текста, выводящегося на картинку PNG с помощью PHP ?
Добавлено спустя 3 часа 44 минуты 54 секунды:
Код: Выделить всё
<?php
function win2uni($s)
{
$s = convert_cyr_string($s,'w','i');
for ($result='', $i=0; $i<strlen($s); $i++) {
$charcode = ord($s[$i]);
$result .= ($charcode>175)?"&#".(1040+($charcode-176)).";":$s[$i];
}
return $result;
}
define('WIDTH', 200);
define('HEIGHT', 60);
define('FONT_NAME', 'arial.ttf');
define('FONT_SIZE', 20);
$image = imagecreatetruecolor(WIDTH,HEIGHT)
or die('Невозможно создать изображение.');
$text = win2uni('Текст');
$coord = imagettfbbox(
FONT_SIZE,
0,
FONT_NAME,
$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,
0xFFFFFF,
FONT_NAME,
$text
);
header('Content-type: image/png');
imagepng($image);
imagedestroy($image);
?>
Зато можно задать шрифт. Выше приведённый код выведет текст "Текст" шрифта arial (работа проверялась в PHP5).
Так вот, запрос: Можно создать к каждому стилю автогенерируемый текст на кнопки (следовательно покончить с проблемой ненарисованных кнопок к стилю). Думаю, если разобраться немножко в PHP'е, то проблем с этим не будет.