芝麻web文件管理V1.00
编辑当前文件:/home/digitalh/panorama.panoramawholesale.com/app/libraries/Resizeimage.php
Cell : +8801964843191 */ class Resizeimage { public $name; public $imagePath; public $source; public $success; public $width; public $height; public $type; public $thumb; public $thumb_width; public $thumb_height; public function Resizeimage($original = false) { $this->imagePath = $original; } /* function copyImage * * @params imagePath * @return */ public function copyImage($name) { // reverse the Dir $name = strrev($name); // Find the position of first '/' $slashPos = strpos($name, '/img/'); // Find the Substring of $name after first '/' $fileDir = substr($name, $slashPos); // reverse the substring to check directory $fileDir = strrev($fileDir); // Again reverse the string $name = strrev($name); if (is_dir($fileDir)) { try { copy($this->imagePath, $name); } catch (Exception $e) { echo 'Cannot copy image ' . $e->getMessage() . "\n"; } } } /* function delete * * @param none * @return none */ public function delete() { try { unlink($this->imagepath); return 1; } catch (Exception $e) { echo 'Cannot delete image' . $e->getMessage() . "\n"; } } /* * funcion createthumbNail * * @param $name - filename * @param $maxWidth - Maximum height of the width image * @param $maxHeight - Maximum height of the resized image * @param $proportion - check if aspect ratio should maintain; boolean true for check , false otherwise * @param $logo_file - Additional image to add over resized image * @param $dest_x (x coordinate) - postion of the additional image over resized image * @param $dest_y (y coordinate) - postion of the additional image over resized image * @return */ public function doResize($name, $maxWidth, $maxHeight, $proportion = true, $logo_file = false, $dest_x = 0, $dest_y = 0) { $this->name = $name; [$this->width, $this->height, $this->type] = getimagesize($this->imagePath); $new_width = $maxWidth; $new_height = $maxHeight; if ($proportion) { if ($this->width > $maxWidth || $this->height > $maxHeight) { $proportions = $this->width / $this->height; if ($proportions > 1.25 || $proportions < 0.8) { if ($this->width > $this->height) { $new_width = $maxWidth; $new_height = round($maxWidth / $proportions); } else { $new_height = $maxHeight; $new_width = round($maxHeight * $proportions); } } } else { $new_width = $this->width; $new_height = $this->height; } } switch ($this->type) { case 1: //Create a new image from file, GIF Format. $this->source = @ imagecreatefromgif($this->imagePath); break; case 2: //Create a new image from file, JPEG Format. $this->source = imagecreatefromjpeg($this->imagePath); break; case 3: //Create a new image from file, PNG Format. $this->source = imagecreatefrompng($this->imagePath); break; default: $this->source = null; } if ($this->source) { $this->thumb_width = $new_width; $this->thumb_height = $new_height; //create an image identifier representing a black image of size x_size by y_size. $this->thumb = imagecreatetruecolor($this->thumb_width, $this->thumb_height); // Resize the image imagecopyresized($this->thumb, $this->source, 0, 0, 0, 0, $this->thumb_width, $this->thumb_height, $this->width, $this->height); // Add image over resized image if ($logo_file) { $logoImage = imagecreatefromgif($logo_file); // Get logo information $logoW = imagesx($logoImage); $logoH = imagesy($logoImage); imagecopy($this->thumb, $logoImage, $dest_x, $dest_y, 0, 0, $logoW, $logoH); } // Save the image switch ($this->type) { case 1: if (function_exists('imagegif')) { $this->success = imagegif($this->thumb, $this->name); break; } $this->success = imagejpeg($this->thumb, $this->name, 50); break; case 2: $this->success = imagejpeg($this->thumb, $this->name, 100); break; case 3: $this->success = imagepng($this->thumb, $this->name); break; } } // Copy the image $this->copyImage($this->name); } /** * Purpose: check if the the uploaded file is of supported type * * @param string $type -type of the uploaded file * @return bool $status -true if valid ,false otherwise */ public static function checkTypeValidity($type) { switch ($type) { case 'image/pjpeg': $status = true; break; case 'image/jpeg': $status = true; break; case 'image/jpg': $status = true; break; case 'image/JPG': $status = true; break; case 'image/JPEG': $status = true; break; case 'image/png': $status = true; break; case 'image/x-png': $status = true; break; case 'image/gif': $status = true; break; default: $status = false; break; } return $status; } public static function makeFileName($extension, $start_string = '') { $file_name = ''; if ($extension[0] != '.') { $extension = '.' . $extension; } while (1) { $file_name = $start_string . rand(111, 999) . time() . $extension; $exist = DB::table('files')->where('filename', '=', $file_name)->get(); if (count($exist) == 0) { break; } } return $file_name; } }