i got this script to generate an image out of a random jpg in a directory, adding a random slogan from a database:
<?php
header('Content-type: text/html; charset=utf-8');
include '../connect.php';
require_once 'random.php';
$timestamp = time();
$date = date("d.m.Y_G", $timestamp);
$slogan = $mysqli->query("SELECT `text` FROM `slogans` ORDER BY RAND() LIMIT 1");
$slogan_txt = $slogan->fetch_assoc();
$bg = get_rand_img('../../images/');
$imgPath = '../../images/' .$bg;
$text = $slogan_txt[text];
$image = $imgPath;
$font = "font.TTF";
$font_size = "25";
$image_2 = imagecreatefromjpeg($image);
$black = imagecolorallocate($image_2,0,0,0);
$image_width = imagesx($image_2);
$image_height = imagesy($image_2);
$text_box = imagettfbbox($font_size,$angle,$font,$text);
$text_width = $text_box[2]-$text_box[0]; // lower right corner - lower left corner
$text_height = $text_box[3]-$text_box[1];
$x = ($image_width/2) - ($text_width/2);
$y = ($image_height/2) - ($text_height/2);
imagettftext($image_2,$font_size,0,$x,$y,$black,$font,$text );
header ("Content-type: image/png");
imagejpeg($image_2);
?>
works fine so far.
Now there are some slogans with to much words for one row. i need them to be wrapped and also be centered!
can't use wordwrap in imagettftext(), so i need to explode it somehow.
i found some functions on the web, but they dont work as expected. maybe i just dont know how to combine them with my existing code!
maybe someone got a workign example from own projects?
thanks so far!
This explodes a string and puts it text into a second string if the first is longer then 14, i guess you could build up on this.
for centering the text you would need to do something like: (imagesisex/2) - digits * pixelsize
Well, it worked now.
Found something interesting here and thats it! Just needed to add the calculation for where to start with the text (responding to imagesize).
GDtext by stil
Thanks!