From 43454eba363997d44815a90264ca072f1d014f21 Mon Sep 17 00:00:00 2001 From: Ian Denhardt Date: Thu, 5 Aug 2010 13:11:34 -0400 Subject: got uploads sortof working - database portion doesn't work though. --- plugins/GNUsocialPhotos/lib/photolib.php | 87 ++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 plugins/GNUsocialPhotos/lib/photolib.php (limited to 'plugins/GNUsocialPhotos/lib') diff --git a/plugins/GNUsocialPhotos/lib/photolib.php b/plugins/GNUsocialPhotos/lib/photolib.php new file mode 100644 index 000000000..9e5ff61fa --- /dev/null +++ b/plugins/GNUsocialPhotos/lib/photolib.php @@ -0,0 +1,87 @@ +. + * + * @category Widget + * @package GNU Social + * @author Ian Denhardt + * @copyright 2010 Free Software Foundation, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 + */ + + +function photo_make_thumbnail($filename) +{ + $height_dest = 192; + $width_dest = 256; + + $size_src = getimagesize(INSTALLDIR . '/file/' . $filename); + $image_type = $size_src[2]; + + switch($image_type) { + case IMAGETYPE_JPEG: + $image_src = imagecreatefromjpeg(INSTALLDIR . '/file/' . $filename); + break; + case IMAGETYPE_PNG: + $image_src = imagecreatefrompng(INSTALLDIR . '/file/' . $filename); + break; + case IMAGETYPE_GIF: + $image_src = imagecreatefromgif(INSTALLDIR . '/file/' . $filename); + break; + default: + return false; + } + + $width_src = $size_src[0]; + $height_src = $size_src[1]; + + $ratio_src = (float) $width_src / (float) $height_src; + $ratio_dest = (float) $width_dest / (float) $height_dest; + + if ($ratio_src > $ratio_dest) { + $height_crop = $height_src; + $width_crop = (int)($height_crop * $ratio_dest); + $x_crop = ($width_src - $width_crop) / 2; + } else { + $width_crop = $width_src; + $height_crop = (int)($width_crop / $ratio_dest); + $x_crop = 0; + } + + $image_dest = imagecreatetruecolor($width_dest, $height_dest); + + imagecopyresampled($image_dest, $image_src, 0, 0, $x_crop, 0, $width_dest, $height_dest, $width_crop, $height_crop); + switch ($image_type) { + case IMAGETYPE_JPEG: + imagejpeg($image_dest, INSTALLDIR . '/file/' . 'thumb.' . $filename, 100); + break; + case IMAGETYPE_PNG: + imagepng($image_dest, INSTALLDIR . '/file/thumb.' . $filename); + break; + case IMAGETYPE_GIF: + imagegif($image_dest, INSTALLDIR . '/file/thumb.' . $filename); + break; + } + + imagedestroy($image_src); + imagedestroy($image_dest); + + return true; +} -- cgit v1.2.3-54-g00ecf