1 /** 2 * $src_file:原文件 3 * $dst_w:目标输出的宽 4 * $dst_h:目标输出的高 5 */ 6 7 function thumb($src_file,$dst_w,$dst_h){ 8 9 # 获取图片信息 10 $imarr = getimagesize($src_file); 11 12 # 获取图片类型 / 变量函数 13 switch ($imarr[2]) { 14 case 1: 15 $imagecreatefrom = "imagecreatefromgif"; 16 $imageout = "imagegif"; 17 break; 18 case 2: 19 $imagecreatefrom = "imagecreatefromjpeg"; 20 $imageout = "imagejpeg"; 21 break; 22 case 3: 23 $imagecreatefrom = "imagecreatefrompng"; 24 $imageout = "imagepng"; 25 break; 26 } 27 28 # 大图 29 $src_im = $imagecreatefrom($src_file); 30 31 # 等比例计算目标资源的宽和高 32 # 大图大小 33 $src_w = imagesx($src_im); 34 $src_h = imagesy($src_im); 35 36 # 等比例缩放 37 $scale = ($src_w/$dst_w)>($src_h/$dst_h)?($src_w/$dst_w):($src_h/$dst_h); 38 39 # 向下取整 40 $dst_w = floor($src_w/$scale); 41 $dst_h = floor($src_h/$scale); 42 43 # 计算结束 44 45 # 小图 46 $dst_im = imagecreatetruecolor($dst_w,$dst_h); 47 48 # 小图坐标 49 $dst_x = 0; 50 $dst_y = 0; 51 52 # 大图坐标 53 $src_x = 0; 54 $src_y = 0; 55 56 # 缩放 57 imagecopyresampled($dst_im, $src_im, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h); 58 59 # 获取大图文件名并加工成小图文件名 60 $t_name = ‘t_‘.basename($src_file); 61 62 # 获取大图文件目录 63 $s_dir = dirname($src_file); 64 65 # 定义小图保存目录,与大图一样 66 $s_file = $s_dir.‘/‘.$t_name; 67 68 # 输出类型 69 header(‘content-type:image/jpeg‘); 70 71 # 输出小图 72 $imageout($dst_im,$s_file); 73 74 } 75 76 $src_file = ‘imgs/3.jpg‘; 77 78 # 函数调用 79 thumb($src_file,100,100);
原文:https://www.cnblogs.com/yachyu/p/10706188.html