龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > php编程 >

简单的PHP生成缩略图函数

时间:2014-07-22 14:47来源: 作者: 点击:
分享到:
简单的生成缩略图函数,支持图片格式:gif、jpeg、png和bmp,支持缩放到固定大小或进行等比缩放,支持直接输入到浏览器或保存到文件。
简单的生成缩略图函数,支持图片格式:gif、jpeg、png和bmp,支持缩放到固定大小或进行等比缩放,支持直接输入到浏览器或保存到文件。
<?php
/**
 * 简单的生成缩略图函数(支持图片格式:gif、jpeg、png和bmp)
 * @author	xiaoshuoit@163.com
 * @param	string	$src		源图片路径
 * @param	int		$width		缩略图宽度(只指定高度时进行等比缩放)
 * @param	int		$width		缩略图高度(只指定宽度时进行等比缩放)
 * @param	string	$filename	保存路径(不指定时直接输出到浏览器)
 * @return	bool
 */
function simple_thumb($src, $width = null, $height = null, $filename = null) {
	if (!isset($width) && !isset($height))
		return false;
	if (isset($width) && $width <= 0)
		return false;
	if (isset($height) && $height <= 0)
		return false;

	$size = getimagesize($src);
	if (!$size)
		return false;

	list($src_w, $src_h, $src_type) = $size;
	$src_mime = $size['mime'];
	switch($src_type) {
		case 1 :
			$img_type = 'gif';
			break;
		case 2 :
			$img_type = 'jpeg';
			break;
		case 3 :
			$img_type = 'png';
			break;
		case 15 :
			$img_type = 'wbmp';
			break;
		default :
			return false;
	}

	if (!isset($width))
		$width = $src_w * ($height / $src_h);
	if (!isset($height))
		$height = $src_h * ($width / $src_w);

	$imagecreatefunc = 'imagecreatefrom' . $img_type;
	$src_img = $imagecreatefunc($src);
	$dest_img = imagecreatetruecolor($width, $height);
	imagecopyresampled($dest_img, $src_img, 0, 0, 0, 0, $width, $height, $src_w, $src_h);

	$imagefunc = 'image' . $img_type;
	if ($filename) {
		$imagefunc($dest_img, $filename);
	} else {
		header('Content-Type: ' . $src_mime);
		$imagefunc($dest_img);
	}

	imagedestroy($src_img);
	imagedestroy($dest_img);
	return true;
}

simple_thumb("http://www.baidu.com/img/bdlogo.gif", 100);
//simple_thumb("img/example.jpg", 100, null , 'img/example_thumb.jpg');
精彩图集

赞助商链接