В настоящее время у меня нормально работает следующее без каких-либо проблем (пока).
header ("Content-type: image/png");
$string = $_REQUEST['text'];
$font = 15;
$width = 300;
$height = 350;
$image = imagecreate($width, $height);
$back = ImageColorAllocate($image, 255, 255, 255);
$border = ImageColorAllocate($image, 0, 0, 0);
ImageFilledRectangle($image, 0, 0, $width, $height, $border);
ImageFilledRectangle($image, 1, 1, $width-2, $height-2, $back);
$text_color = imagecolorallocate($image, 255, 0, 0);
ImageStringWrap($image, $font, 3, 2, $string, $text_color, $width-2 );
imagepng($image);
function ImageStringWrap($image, $font, $x, $y, $text, $color, $maxwidth) {
$fontwidth = ImageFontWidth($font);
$fontheight = ImageFontHeight($font);
if ($maxwidth != NULL) {
$maxcharsperline = floor($maxwidth / $fontwidth);
$text = wordwrap($text, $maxcharsperline, "\n", false);
}
while (list($numl, $line) = each($lines)) {
ImageString($image, $font, $x, $y, $line, $color);
$y += $fontheight;
}
}
Хотя вышеперечисленное прекрасно работает, одна вещь, с которой я не справился, это возможность получить строкуbreaks like бы сродни nl2br()
.
Текст, из которого он извлекается из $_REQUEST['text']
, взят из базы данных, которая была первоначально вставлена из текстовой области и передана в этот скрипт через URL.Естественно, когда люди вводят текстовую область, из-за этого возникают разрывы строк.Хотя распечатать его в браузере с помощью текста очень просто, я не могу получить тот же результат на изображении.
Я не потратил много времени на работу с библиотекой GD, но после поиска подействительно не могу ничего найти о том, как это сделать.Разве это просто невозможно?