<?php
|
|
|
|
|
|
function wordWrapAnnotation(&$image, &$draw, $text, $maxWidth)
|
|
{
|
|
$words = explode(" ", $text);
|
|
$lines = array();
|
|
$i = 0;
|
|
$lineHeight = 0;
|
|
while($i < count($words) )
|
|
{
|
|
$currentLine = $words[$i];
|
|
if($i+1 >= 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);
|
|
|
|
//grayscale
|
|
|
|
//$image->modulateImage(100, 0, 100);
|
|
|
|
/* Green text */
|
|
$draw->setFillColor("rgb(0,255,0)");
|
|
|
|
/* Font properties */
|
|
$draw->setFont('Bookman-DemiItalic');
|
|
|
|
$fontsize = 0.05 * $image->getimagewidth();
|
|
|
|
$draw->setFontSize( "$fontsize" );
|
|
|
|
//width = 1180 font is 50
|
|
//width = 300 font is 15
|
|
|
|
//font = slope of diff(width) + x intercept
|
|
|
|
|
|
|
|
$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 '<img src="data:image/jpg;base64,'.base64_encode($image->getImageBlob()).'" alt="" width="100%"/>';
|
|
}
|
|
function printHalf($query)
|
|
{
|
|
//random
|
|
|
|
|
|
$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 '</div>';
|
|
}
|
|
|
|
|
|
echo '<div class="w3-row-padding w3-center w3-margin-top">';
|
|
|
|
echo '<div class="w3-half">';
|
|
echo '<h1 class="w3-text-teal w3-center">Random Quote</h1>';
|
|
$q ="select * from quote where visibility=true order by rand() limit 1";
|
|
$r = mysqli_query ($dbc, $q);
|
|
|
|
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 '</div>';
|
|
|
|
|
|
echo '<div class="w3-half">';
|
|
echo '<h1 class="w3-text-teal w3-center">Most Recent</h1>';
|
|
$q ="select * from quote where visibility=true order by creation_date desc limit 1";
|
|
$r = mysqli_query ($dbc, $q);
|
|
|
|
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 '</div>';
|
|
|
|
echo '</div>';
|
|
|
|
echo '<div class="w3-row-padding w3-center w3-margin-top">';
|
|
|
|
echo '<div class="w3-half row-center">';
|
|
|
|
if(isset($_POST['panda']))
|
|
{
|
|
displayImage($_POST['panda_quote'], $_POST['panda_name'], $images[rand(0, count($images) - 1)]);
|
|
}
|
|
echo '<h1 class="w3-text-teal w3-center">Create a panda quote!</h1>';
|
|
|
|
|
|
|
|
echo '<form action="index.php" method ="post" class="w3-container w3-card-4">
|
|
|
|
<div class="w3-group">
|
|
<input class="w3-input" type="text" name="panda_quote" required>
|
|
<label class="w3-label w3-validate">Quote</label>
|
|
</div>
|
|
<div class="w3-group">
|
|
<input class="w3-input" type="text" name="panda_name" required>
|
|
<label class="w3-label w3-validate">Person\'s Name</label>
|
|
</div>
|
|
<p><input type="submit" name="Submit" value="Create Panda Quote" class="w3-padding-16 w3-hover-dark-grey w3-btn-block w3-center-align" /></p>
|
|
<input type="hidden" name="panda" value="TRUE" />
|
|
|
|
|
|
</form>';
|
|
|
|
|
|
echo '</div>';
|
|
|
|
echo '<div class="w3-half w3-container">';
|
|
//profile
|
|
include('user/profile.php');
|
|
echo '</div>';
|
|
|
|
echo '</div>';
|
|
|
|
|
|
|
|
?>
|