zoukankan      html  css  js  c++  java
  • PHP生成缩略图

     1 private function create_scaled_image($file_path){
     2         $file_name = basename($file_path);
     3         $new_file_path = dirname($file_path) . DIRECTORY_SEPARATOR . $this->thumbnail['upload_dir'] . DIRECTORY_SEPARATOR;
     4         if(!file_exists($new_file_path))
     5             @mkdir($new_file_path);
     6         $new_file_path .= $file_name;
     7         list($img_width, $img_height) = @getimagesize($file_path);
     8         if(!$img_width || !$img_height){
     9             return false;
    10         }
    11         $scale = min(
    12                 $this->thumbnail['max_width'] / $img_width, $this->thumbnail['max_height'] / $img_height
    13         );
    14         if($scale >= 1){
    15             if($file_path !== $new_file_path){
    16                 return copy($file_path, $new_file_path);
    17             }
    18             return true;
    19         }
    20         $new_width = $img_width * $scale;
    21         $new_height = $img_height * $scale;
    22         $new_img = @imagecreatetruecolor($new_width, $new_height);
    23         switch(strtolower(substr(strrchr($file_name, '.'), 1))){
    24             case 'jpg':
    25             case 'jpeg':
    26                 $src_img = @imagecreatefromjpeg($file_path);
    27                 $write_image = 'imagejpeg';
    28                 $image_quality = isset($this->thumbnail['jpeg_quality']) ?
    29                         $this->thumbnail['jpeg_quality'] : 75;
    30                 break;
    31             case 'gif':
    32                 @imagecolortransparent($new_img, @imagecolorallocate($new_img, 0, 0, 0));
    33                 $src_img = @imagecreatefromgif($file_path);
    34                 $write_image = 'imagegif';
    35                 $image_quality = null;
    36                 break;
    37             case 'png':
    38                 @imagecolortransparent($new_img, @imagecolorallocate($new_img, 0, 0, 0));
    39                 @imagealphablending($new_img, false);
    40                 @imagesavealpha($new_img, true);
    41                 $src_img = @imagecreatefrompng($file_path);
    42                 $write_image = 'imagepng';
    43                 $image_quality = isset($this->thumbnail['png_quality']) ?
    44                         $this->thumbnail['png_quality'] : 9;
    45                 break;
    46             default:
    47                 $src_img = null;
    48         }
    49         $success = $src_img && @imagecopyresampled(
    50                         $new_img, $src_img, 0, 0, 0, 0, $new_width, $new_height, $img_width, $img_height
    51                 ) && $write_image($new_img, $new_file_path, $image_quality);
    52         // Free up memory (imagedestroy does not delete files):
    53         @imagedestroy($src_img);
    54         @imagedestroy($new_img);
    55         return $success;
    56     }
  • 相关阅读:
    01开卡主流程
    eclipse开发工程右键菜单例子
    eclipse插件开发需要什么
    installshield安装程序自注册dll
    eclipse开发视图
    vbscript和cmd命令 如何获取当前文件的路径
    eclipse开发视图
    vbscript和cmd命令 如何获取当前文件的路径
    vbscript设置环境变量
    eclipse开发工程右键菜单例子
  • 原文地址:https://www.cnblogs.com/wc1217/p/2536510.html
Copyright © 2011-2022 走看看