diff options
author | BlueTeck <tili2@gmx.de> | 2015-04-09 09:01:29 +0200 |
---|---|---|
committer | BlueTeck <tili2@gmx.de> | 2015-04-09 09:01:29 +0200 |
commit | c1329ac7c45baf3c824b91f043e70a2f6b072785 (patch) | |
tree | adfb0b39db42d2af72a08b74903d929e263a0420 /app/Controller | |
parent | 4460851615d16b1ad0047b3d21389396d8ce5234 (diff) |
#779 remove image hover and center thumbnail
Diffstat (limited to 'app/Controller')
-rw-r--r-- | app/Controller/File.php | 53 |
1 files changed, 39 insertions, 14 deletions
diff --git a/app/Controller/File.php b/app/Controller/File.php index 3963e2d7..a27942e7 100644 --- a/app/Controller/File.php +++ b/app/Controller/File.php @@ -112,6 +112,7 @@ class File extends Base $file = $this->file->getById($this->request->getIntegerParam('file_id')); $width_param = $this->request->getIntegerParam('width'); $height_param = $this->request->getIntegerParam('height'); + $resize_cut_param = $this->request->getIntegerParam('resize_cut'); $filename = FILES_DIR.$file['path']; if ($file['task_id'] == $task['id'] && file_exists($filename)) { @@ -119,22 +120,46 @@ class File extends Base // Get new sizes list($width, $height) = getimagesize($filename); - if ($width_param == 0 && $height_param == 0) { - $newwidth = 100; - $newheight = 100; - } elseif ($width_param > 0 && $height_param == 0) { - $newwidth = $width_param; - $newheight = floor($height * ($width_param / $width)); - } elseif ($width_param == 0 && $height_param > 0) { - $newwidth = floor($width * ($height_param / $height)); - $newheight = $height_param; + if($resize_cut_param == 0){ + //resize without cut + if ($width_param == 0 && $height_param == 0) { + $newwidth = 100; + $newheight = 100; + } elseif ($width_param > 0 && $height_param == 0) { + $newwidth = $width_param; + $newheight = floor($height * ($width_param / $width)); + } elseif ($width_param == 0 && $height_param > 0) { + $newwidth = floor($width * ($height_param / $height)); + $newheight = $height_param; + } else { + $newwidth = $width_param; + $newheight = $height_param; + } + $dest_y = 0; + $dest_x = 0; + $thumb = imagecreatetruecolor($newwidth, $newheight); } else { - $newwidth = $width_param; - $newheight = $height_param; + // resize and cut + $ratio_img = $width / $height; + $ratio_param = $width_param / $height_param; + + if($ratio_img < $ratio_param){ + $newwidth = $width_param; + $newheight = floor($height * ($width_param / $width)); + + $dest_y = ( $newheight - $height_param ) / 2 * (-1); + $dest_x = 0; + }elseif($ratio_img > $ratio_param){ + $newwidth = floor($width * ($height_param / $height)); + $newheight = $height_param; + + $dest_y = 0; + $dest_x = ( $newwidth - $width_param ) / 2; + } + $thumb = imagecreatetruecolor($width_param, $height_param); } - // Load - $thumb = imagecreatetruecolor($newwidth, $newheight); + // Load $extension = strtolower(pathinfo($file['name'], PATHINFO_EXTENSION)); switch ($extension) { @@ -154,7 +179,7 @@ class File extends Base } // Resize - imagecopyresampled($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height); + imagecopyresampled($thumb, $source, $dest_x, $dest_y, 0, 0, $newwidth, $newheight, $width, $height); $metadata = getimagesize($filename); |