Simplify and correct thumbnail method

This commit is contained in:
BlueTeck
2015-04-09 15:20:27 +02:00
parent bca1012e70
commit aea3a352aa
2 changed files with 24 additions and 25 deletions

View File

@@ -112,29 +112,28 @@ class File extends Base
$file = $this->file->getById($this->request->getIntegerParam('file_id')); $file = $this->file->getById($this->request->getIntegerParam('file_id'));
$width_param = $this->request->getIntegerParam('width'); $width_param = $this->request->getIntegerParam('width');
$height_param = $this->request->getIntegerParam('height'); $height_param = $this->request->getIntegerParam('height');
$resize_cut_param = $this->request->getIntegerParam('resize_cut');
$filename = FILES_DIR.$file['path']; $filename = FILES_DIR.$file['path'];
if ($file['task_id'] == $task['id'] && file_exists($filename)) { if ($file['task_id'] == $task['id'] && file_exists($filename)) {
// Get new sizes // Get new sizes
list($width, $height) = getimagesize($filename); list($width, $height) = getimagesize($filename);
if($resize_cut_param == 0){ //default size
//resize without cut if ($width_param == 0 && $height_param == 0) {
if ($width_param == 0 && $height_param == 0) { $width_param = 100;
$newwidth = 100; $height_param = 100;
$newheight = 100; }
} elseif ($width_param > 0 && $height_param == 0) {
$newwidth = $width_param; if ($width_param > 0 && $height_param == 0) {
$newheight = floor($height * ($width_param / $width)); $newwidth = $width_param;
} elseif ($width_param == 0 && $height_param > 0) { $newheight = floor($height * ($width_param / $width));
$newwidth = floor($width * ($height_param / $height)); $dest_y = 0;
$newheight = $height_param; $dest_x = 0;
} else { $thumb = imagecreatetruecolor($newwidth, $newheight);
$newwidth = $width_param; } elseif ($width_param == 0 && $height_param > 0) {
$newheight = $height_param; $newwidth = floor($width * ($height_param / $height));
} $newheight = $height_param;
$dest_y = 0; $dest_y = 0;
$dest_x = 0; $dest_x = 0;
$thumb = imagecreatetruecolor($newwidth, $newheight); $thumb = imagecreatetruecolor($newwidth, $newheight);
@@ -142,23 +141,23 @@ class File extends Base
// resize and cut // resize and cut
$ratio_img = $width / $height; $ratio_img = $width / $height;
$ratio_param = $width_param / $height_param; $ratio_param = $width_param / $height_param;
if($ratio_img < $ratio_param){ if($ratio_img <= $ratio_param){
$newwidth = $width_param; $newwidth = $width_param;
$newheight = floor($height * ($width_param / $width)); $newheight = floor($height * ($width_param / $width));
$dest_y = ( $newheight - $height_param ) / 2 * (-1); $dest_y = ( $newheight - $height_param ) / 2 * (-1);
$dest_x = 0; $dest_x = 0;
}elseif($ratio_img > $ratio_param){ }elseif($ratio_img > $ratio_param){
$newwidth = floor($width * ($height_param / $height)); $newwidth = floor($width * ($height_param / $height));
$newheight = $height_param; $newheight = $height_param;
$dest_y = 0; $dest_y = 0;
$dest_x = ( $newwidth - $width_param ) / 2; $dest_x = ( $newwidth - $width_param ) / 2 * (-1);
} }
$thumb = imagecreatetruecolor($width_param, $height_param); $thumb = imagecreatetruecolor($width_param, $height_param);
} }
// Load // Load
$extension = strtolower(pathinfo($file['name'], PATHINFO_EXTENSION)); $extension = strtolower(pathinfo($file['name'], PATHINFO_EXTENSION));

View File

@@ -11,7 +11,7 @@
<li> <li>
<?php if (function_exists('imagecreatetruecolor')): ?> <?php if (function_exists('imagecreatetruecolor')): ?>
<div class="img_container"> <div class="img_container">
<img src="<?= $this->u('file', 'thumbnail', array('width' => 250, 'height' => 100, 'resize_cut' => 1, 'file_id' => $file['id'], 'project_id' => $task['project_id'], 'task_id' => $file['task_id'])) ?>" alt="<?= $this->e($file['name']) ?>"/> <img src="<?= $this->u('file', 'thumbnail', array('width' => 250, 'height' => 100, 'file_id' => $file['id'], 'project_id' => $task['project_id'], 'task_id' => $file['task_id'])) ?>" alt="<?= $this->e($file['name']) ?>"/>
</div> </div>
<?php endif ?> <?php endif ?>
<p> <p>