PHP 创建压缩图

<?php 
//创建压缩图
function _create_thumbnail($srcFile, $toW, $toH, $toFile="")
{
	if ($toFile == "")
	{
		$toFile = $srcFile;
	}
	$info = "";
	$data = getimagesize($srcFile, $info);
	if (!$data)
		return false;

	//将文件载入到资源变量im中
	switch ($data[2])
	{
		case 1:
			$im = imagecreatefromgif($srcFile);
			break;
		case 2:
			$im = imagecreatefromjpeg($srcFile);
			break;
		case 3:
			$im = imagecreatefrompng($srcFile);
			break;
	}

	//计算缩略图的宽高
	$srcW = imagesx($im);
	$srcH = imagesy($im);
	$toWH = $toW / $toH;
	$srcWH = $srcW / $srcH;
	if ($toWH <= $srcWH)
	{
		$ftoW = $toW;
		$ftoH = (int)($ftoW * ($srcH / $srcW));
	}
	else
	{
		$ftoH = $toH;
		$ftoW = (int)($ftoH * ($srcW / $srcH));
	}
	if (function_exists("imagecreatetruecolor"))
	{
		$ni = imagecreatetruecolor($ftoW, $ftoH); //新建一个真彩色图像
		if ($ni)
		{
			//重采样拷贝部分图像并调整大小 可保持较好的清晰度
			imagecopyresampled($ni, $im, 0, 0, 0, 0, $ftoW, $ftoH, $srcW, $srcH);
		}
		else
		{
			//拷贝部分图像并调整大小
			$ni = imagecreate($ftoW, $ftoH);
			imagecopyresized($ni, $im, 0, 0, 0, 0, $ftoW, $ftoH, $srcW, $srcH);
		}
	}
	else
	{
		$ni = imagecreate($ftoW, $ftoH);
		imagecopyresized($ni, $im, 0, 0, 0, 0, $ftoW, $ftoH, $srcW, $srcH);
	}
	//保存到文件 统一为.png格式
	imagepng($ni, $toFile); //以 PNG 格式将图像输出到浏览器或文件
	ImageDestroy($ni);
	ImageDestroy($im);
}
?>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值