Это хороший пример , вы можете сделать практически все, используя эти функции . Хотя это и возможно, создать изображение, подобное описанному вами, было бы довольно сложно, поскольку я сделал несколько странных вещей с градиентами, петлями и цветами.
Если вы хотите создать подобное изображение динамически на основе некоторых параметров, вы всегда можете заранее создать изображения в фотошопе, а затем наложить их на основе того, что выберет пользователь.
Вы можете получить массу удовольствия.
Редактировать: Да, кстати, если ваш заинтересованный , задающий недопустимый параметр, показывает часть кода Python , который отвечает за создание изображения и вызывает ошибку. Было бы неплохо получить представление о коде.
2-е редактирование: это то, что я сделал с такой технологией. Имейте в виду, это было довольно давно. Он принимает имя на основе строки запроса и в основном выполняет несколько циклов с большим количеством случайных чисел.
Вот исходный код, я прошу прощения за любой глупый код / цитаты. Это было написано довольно давно, когда мне было лет 14, я думаю (вероятно, много недостатков).
<?php
header("Content-type:image/jpeg");
$array=array("I am a monument to all your sins", "Currently making pizza","Best before 12/7/09", "Farming Onions");
function imagettftext_cr(&$im, $size, $angle, $x, $y, $color, $fontfile, $text)
{
// retrieve boundingbox
$bbox = imagettfbbox($size, $angle, $fontfile, $text);
// calculate deviation
$dx = ($bbox[2]-$bbox[0])/2.0 - ($bbox[2]-$bbox[4])/2.0; // deviation left-right
$dy = ($bbox[3]-$bbox[1])/2.0 + ($bbox[7]-$bbox[1])/2.0; // deviation top-bottom
// new pivotpoint
$px = $x-$dx;
$py = $y-$dy;
return imagettftext($im, $size, $angle, $px, $y, $color, $fontfile, $text);
}
$image = imagecreate(500,90);
$black = imagecolorallocate($image,0,0,0);
$grey_shade = imagecolorallocate($image,40,40,40);
$white = imagecolorallocate($image,255,255,255);
$text = $array[rand(0,sizeof($array)-1)];
// Local font files, relative to script
$otherFont = 'army1.ttf';
$font = 'army.ttf';
if($_GET['name'] == ""){ $name = "Sam152";}else{$name= $_GET['name'];}
$name = substr($name, 0, 25);
//BG text for Name
while($i<10){
imagettftext_cr($image,rand(2,40),rand(0,50),rand(10,500),rand(0,200),$grey_shade,$font,$name);
$i++;
}
//BG text for saying
while($i<10){
imagettftext_cr($image,rand(0,40),rand(90,180),rand(100,500),rand(200,500),$grey_shade,$otherFont,$text);
$i++;
}
// Main Text
imagettftext_cr($image,35,0,250,46,$white,$font,$name);
imagettftext_cr($image,10,0,250,76,$white,$otherFont,$text);
imagejpeg($image);
?>