= count($words)) { $lines[] = $currentLine; break; } //Check to see if we can add another word to this line $metrics = $image->queryFontMetrics($draw, $currentLine . ' ' . $words[$i+1]); while($metrics['textWidth'] <= $maxWidth) { //If so, do it and keep doing it! $currentLine .= ' ' . $words[++$i]; if($i+1 >= count($words)) break; $metrics = $image->queryFontMetrics($draw, $currentLine . ' ' . $words[$i+1]); } //We can't add the next word to this line, so loop to the next line $lines[] = $currentLine; $i++; //Finally, update line height if($metrics['textHeight'] > $lineHeight) $lineHeight = $metrics['textHeight']; } return array($lines, $lineHeight); } function displayImage($quote, $person, $imageLoc) { $draw = new ImagickDraw(); $image = new Imagick(); $image->readImage($imageLoc); /* Green text */ $draw->setFillColor("rgb(0,255,0)"); /* Font properties */ $draw->setFont('Bookman-DemiItalic'); $fontsize = 0.05 * $image->getimagewidth(); $draw->setFontSize( "$fontsize" ); $xpos = $image->getimagewidth()/4; $ypos = $image->getimageheight()/4; $msg = '"' . $quote . '"' . " - $person"; list($lines, $lineHeight) = wordWrapAnnotation($image, $draw, $msg, $image->getimagewidth() /2); for($i = 0; $i < count($lines); $i++) $image->annotateImage($draw, $xpos, $ypos + $i*$lineHeight, 0, $lines[$i]); /* Give image a format */ $image->setImageFormat('png'); echo ''; } function printHalf($query) { $r = mysqli_query ($dbc, $query); while($row = mysqli_fetch_array($r)) { $q2 = "select name from people where person_id='" . $row['person_id'] . "' limit 1"; $r2 = mysqli_query($dbc, $q2); while($row2 = mysqli_fetch_array($r2)) { $images = glob('../img/*'); displayImage($row['quote'], $row2['name'], $images[rand(0, count($images) - 1)]); } } echo ''; } echo '