aboutsummaryrefslogtreecommitdiff
path: root/h-source/admin/Library/Image/Gd/Thumbnail.php
diff options
context:
space:
mode:
authorYuchen Pei <hi@ypei.me>2021-10-14 15:16:42 +1100
committerYuchen Pei <hi@ypei.me>2021-10-14 15:16:42 +1100
commit07f5140771388c9e0c8a99b0dd2e5d950bdb173b (patch)
tree323c00faef1edc7dea2e88ff581cc2258b2b6432 /h-source/admin/Library/Image/Gd/Thumbnail.php
parente119be145500700f3c465e12664403a07530a421 (diff)
moving h-source subdir out.
Diffstat (limited to 'h-source/admin/Library/Image/Gd/Thumbnail.php')
-rw-r--r--h-source/admin/Library/Image/Gd/Thumbnail.php151
1 files changed, 0 insertions, 151 deletions
diff --git a/h-source/admin/Library/Image/Gd/Thumbnail.php b/h-source/admin/Library/Image/Gd/Thumbnail.php
deleted file mode 100644
index 5981175..0000000
--- a/h-source/admin/Library/Image/Gd/Thumbnail.php
+++ /dev/null
@@ -1,151 +0,0 @@
-<?php
-
-// All EasyGiant code is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
-// See COPYRIGHT.txt and LICENSE.txt.
-
-if (!defined('EG')) die('Direct access not allowed!');
-
-//class to create a thumbnail
-class Image_Gd_Thumbnail
-{
- const DS = DIRECTORY_SEPARATOR;
-
- private $params = array(); //parameters of the object
- private $basePath = null; //the path of the folder inside which the images are saved
-
- public function __construct($basePath,$params = null)
- {
- $finalChar = $basePath[strlen($basePath) - 1];
- if (strcmp($finalChar,self::DS) !== 0) $basePath .= self::DS;
-
- $this->basePath = $basePath;
-
- $defaultParams = array(
- 'imgWidth' => 100,
- 'imgHeight' => 100,
- 'defaultImage' => null,
- 'cropImage' => 'no',
- 'horizAlign' => 'left',
- 'vertAlign' => 'top'
- );
-
- //set the $this->scaffold->params array
- if (is_array($params))
- {
- foreach ($params as $key => $value)
- {
- $defaultParams[$key] = $value;
- }
- }
- $this->params = $defaultParams;
- }
-
- //create the thumbnail
- //$imageName: the name of the file inside $this->basePath
- public function render($imageFile)
- {
- $imagePath = $this->basePath . basename($imageFile);
-
- if (!file_exists($imagePath) and isset($this->params['defaultImage'])) $imagePath = $this->params['defaultImage'];
-
- $img = null;
- $ext = strtolower(end(explode('.', $imagePath)));
-
- if (strcmp($ext,'jpg') === 0 or strcmp($ext,'jpeg') === 0) {
- $img = @imagecreatefromjpeg($imagePath);
- } else if (strcmp($ext,'png') === 0) {
- $img = @imagecreatefrompng($imagePath);
- } else if (strcmp($ext,'gif') === 0) {
- $img = @imagecreatefromgif($imagePath);
- }
-
- //If an image was successfully loaded, test the image for size
- if ($img) {
- //image size
- $width = imagesx($img);
- $height = imagesy($img);
-
- if ($this->params['cropImage'] === 'no')
- {
- $scale = min($this->params['imgWidth']/$width, $this->params['imgHeight']/$height);
- }
- else if ($this->params['cropImage'] === 'yes')
- {
- $scale = max($this->params['imgWidth']/$width, $this->params['imgHeight']/$height);
- }
-
- if ($scale < 1) {
-
- $xSrc = 0;
- $ySrc = 0;
-
- if ($this->params['cropImage'] === 'no')
- {
- $newWidth = floor($scale*$width);
- $newHeight = floor($scale*$height);
- }
- else if ($this->params['cropImage'] === 'yes')
- {
-
- $newWidth = $this->params['imgWidth'];
- $newHeight = $this->params['imgHeight'];
- $oldWidth = $width;
- $oldHeight = $height;
- $width = floor($newWidth/$scale);
- $height = floor($newHeight/$scale);
-
- switch ($this->params['horizAlign'])
- {
- case 'left':
- $xSrc = 0;
- break;
- case 'right':
- $xSrc = floor(($oldWidth-$width));
- break;
- case 'center':
- $xSrc = floor(($oldWidth-$width)/2);
- break;
- default:
- $xSrc = $this->params['horizAlign'];
- }
-
- switch ($this->params['vertAlign'])
- {
- case 'top':
- $ySrc = 0;
- break;
- case 'bottom':
- $ySrc = floor(($oldHeight-$height));
- break;
- case 'center':
- $ySrc = floor(($oldHeight-$height)/2);
- break;
- default:
- $ySrc = $this->params['vertAlign'];
- }
-
- }
-
- //temp image
- $tmpImg = imagecreatetruecolor($newWidth, $newHeight);
-
- //copy and resize
- imagecopyresized($tmpImg, $img, 0, 0, $xSrc, $ySrc,$newWidth, $newHeight, $width, $height);
- imagedestroy($img);
- $img = $tmpImg;
- }
-
- }
-
- if (!$img) {
- $img = imagecreate($this->params['imgWidth'], $this->params['imgHeight']);
- imagecolorallocate($img,200,200,200);
- }
-
- //print the image
- header("Content-type: image/jpeg");
- imagejpeg($img);
-
- }
-
-} \ No newline at end of file