getRootPath() . 'public/' . ltrim($src, '/'); if (is_file($realPath)) { $img = TImage::open($realPath); list($img_w, $img_h) = $img->size(); if ($max > 0 && $img_w > $max) { $img->thumb($max, $max * ($img_h / $img_w))->save($realPath); } } } // public static function webResize($src, $width = 1920, $height = 500) // { // // $realPath = app()->getRootPath() . 'public/' . ltrim($src, '/'); // if (is_file($realPath)) { // $img = TImage::open($realPath); // list($img_w, $img_h) = $img->size(); // if ($width > 0 && $img_w > $width) { // $img->thumb($width, $width * ($img_h / $img_w))->save($realPath); // } // $ext = explode(".", $src); // return $ext[0] . "_" . $width . "_" . $height . ".".$ext[1]; // } // return $src; // } /** * 添加水印 * milo * 2018-01-17 */ public static function mark($src) { $rootPath = app()->getRootPath(); if (!empty($src)) { $system = System::getSystem(); $realPath = $rootPath . 'public/' . ltrim($src, '/'); if (is_file($realPath)) { if ($system['is_mark']) { $mark = $rootPath . ltrim($system['mark_img'], '/'); if (is_file($mark)) { $mark_position = $system['mark_position'] ?? 5; $mark_opacity = $system['mark_opacity'] ?? 50; $img = TImage::Open($realPath); $img->water($mark, $mark_position, $mark_opacity)->save($realPath); } } } } } //获取水印位置键值对 public static function getMarkPosition() { return [ "1" => '上左', "2" => '上中', "3" => '上右', "4" => '中左', "5" => '正中', "6" => '中右', "7" => '下左', "8" => '下中', "9" => '下右' ]; } /** * 删除图片 * milo * 2018-01-15 */ public static function delImg($src) { if (!empty(trim($src))) { $realPath = app()->getRootPath() . 'public/' . ltrim($src, '/'); if (file_exists($realPath)) { $info = pathinfo($realPath); $source = $info['dirname'] . DIRECTORY_SEPARATOR . $info['filename'] . '*.' . $info['extension']; foreach (glob($source) as $filename) { if (is_file($filename)) { unlink($filename); } } clearstatcache();// 清除缓存 } } } /** * 获取缩略图 * milo * 2019-10-24修改 * 避免跨平台出错,目录分隔符全部转换为'/' * app()->getRuntimePath() = app()->getRootPath().'runtime/当前应用模块(api)/' */ public static function getThumb($src, $width = 0, $height = 0, $type = TImage::THUMB_CENTER) { if (empty($src)) { return ''; } $rootPath = app()->getRootPath(); $realPath = $rootPath . 'public/' . ltrim($src, '/'); $realPath = str_replace('\\', '/', $realPath); if (!file_exists($realPath)) { return ''; } $info = pathinfo($src); if ($width <= 0 && $height <= 0) { //高宽都小于或等于0,则返回原图片 return $src; } $image = TImage::open($realPath); list($imageWidth, $imageHeight) = $image->size(); if ($width <= 0) { $width = floor($height * ($imageWidth / $imageHeight)); } elseif ($height <= 0) { $height = floor($width * ($imageHeight / $imageWidth)); } // if ($width >= $imageWidth || $height >= $imageHeight) { // return $src; // } $thumbName = $info['dirname'] . DIRECTORY_SEPARATOR . $info['filename'] . '_' . $width . '_' . $height . '.' . $info['extension']; $realThumbName = $rootPath . 'public/' . ltrim($thumbName, '/'); $realThumbName = str_replace('\\', '/', $realThumbName); if (!file_exists($realThumbName)) { $image = TImage::open($realPath); $image->thumb($width, $height, $type)->save($realThumbName); } return str_replace('\\', '/', $thumbName); } }