php 生成缩略图
$img = 'images/2.jpg'; createThumb($img, 500); /** * 生成缩略图 * @param $img 原图路径 * @param int $thumb_width 缩略图的宽度,默认200 * @param string $ext 缩略图的扩展名,默认和原图相同 * @return bool|string */ function createThumb($img, $thumb_width = 200, $ext = '') { //1.获取原图像的大小 $img_arr = getimagesize($img); $img_width = $img_arr[0]; $img_height = $img_arr[1]; //获取原图像资源 $src = imagecreatefromAll($img); //2.计算缩略图大小 //方式二: //$thumb_width =200; $thumb_height = $img_height * $thumb_width / $img_width; //3.创建画布 //$thumb = imagecreate($thumb_width, $thumb_height); $thumb = imagecreatetruecolor($thumb_width, $thumb_height); //4.生成缩略图 imagecopyresized($thumb, $src, 0, 0, 0, 0, $thumb_width, $thumb_height, $img_width, $img_height); //5.生成文件 $thumb_file = createImageAll($img, $thumb, $ext); //只在浏览器中显示,不生成文件 //header('content-type:image/jpeg'); //imagepng($thumb); imagedestroy($thumb); imagedestroy($src); return $thumb_file; } /** * 获取图片资源 * @param $src 图片路径 * @return bool|resource */ function imageCreateFromAll($src) { $src_arr = getimagesize($src); switch ($src_arr['mime']) { case 'image/jpeg': return imagecreatefromjpeg($src); case 'image/png': return imagecreatefrompng($src); case 'image/gif': return imagecreatefromgif($src); case 'image/bmp': return imagecreatefrombmp($src); // case 'image/wbmp': // return imagecreatefromwbmp($src); // case 'image/webp': // return imagecreatefromwebp($src); // case 'image/x-xbitmap': // return imagecreatefromxbm($src); // case 'image/x-xpixmap': // return imagecreatefromxpm($src); default : return false; } } /** * 生成图片 * @param $src 原图的路径 * @param $im 目标图的资源 * @param string $ext 生成图片的扩展名,默认是原图扩展名 * @param string $prefix 文件名前缀 * @param int $quality 生成jpg格式图片的质量 * @return bool|string */ function createImageAll($src, $im, $ext = '', $prefix = 'thumb_', $quality = 80) { $src_path = pathinfo($src); //$ext 为空,和原图扩展名相同 if (empty($ext)) { $ext = $src_path['extension']; } $new_file = $src_path['dirname'] . '/' . $prefix . $src_path['filename'] . '.' . $ext; switch (strtolower($ext)) { case 'jpg': imagejpeg($im, $new_file, $quality); return $new_file; case 'png': imagepng($im, $new_file); return $new_file; case 'gif'; imagegif($im, $new_file); return $new_file; default: return false; } }