/**
* Create a square thumbnail by stuffing the cover at the edges
* @param string $cover path to book cover image
* @param int $newwidth required thumbnail width
* @param int $newheight required thumbnail height
* @param string $thumb_path path for thumbnail storage
* @return bool true = thumbnail created
*/
private function thumbnailStuffed($cover, $newwidth, $newheight, $thumb_path)
{
list($width, $height) = getimagesize($cover);
$thumb = Utilities::transparentImage($newwidth, $newheight);
$source = imagecreatefromjpeg($cover);
$dstx = 0;
$dsty = 0;
$maxwh = max(array($width, $height));
if ($height > $width) {
$diff = $maxwh - $width;
$dstx = (int) $diff / 2;
} else {
$diff = $maxwh - $height;
$dsty = (int) $diff / 2;
}
$inbetween = $this->transparentImage($maxwh, $maxwh);
imagecopy($inbetween, $source, $dstx, $dsty, 0, 0, $width, $height);
imagecopyresampled($thumb, $inbetween, 0, 0, 0, 0, $newwidth, $newheight, $maxwh, $maxwh);
$created = imagepng($thumb, $thumb_path);
imagedestroy($thumb);
imagedestroy($inbetween);
imagedestroy($source);
return $created;
}