php实现图片缩放

文件存放信息:
appsServ
WWW
test
index.php --php运行文件
1.jpg --大的图形文件(随便在网上找一张)

s_1.jpg(程序运行后产生小的图形文件)

index.php

<?php
	$imgfile = "1.jpg";
	
	//大图宽高
	$imgarr = getimagesize($imgfile);
	$maxw = $imgarr[0];
	$maxh = $imgarr[1];
	$maxt = $imgarr[2];
	$maxm = $imgarr['mine'];
	
	//大图资源
	$maxim = imagecreatefromjpeg($imgfile);
	
	//小图资源
	$minw = 100;
	$minh = 200;
	$minim = imagecreatetruecolor($minw,$minh);
	
	//等比例缩放
	if(($minw/$maxw) > ($minh/$maxh)) {
		$bili = floor($minh/$maxh);
	}
	else {
		$bili = floor($minw/$maxw);
	}
	
	//把大图缩放成小图
	imagecopyresampled($minim,$maxim,0,0,0,0,$minw,$minh,$maxw,$maxh);
	
	//小图输出
	header("content-type:{$maxm}");
	
	//判断类型
	switch($maxt) {
		case 1 :
			$imgout = "imagegif";
			break;
		case 2 :
			$imgout = "imagejpeg";
			break;
		case 3 :
			$imgout = "imagepng";
			break;
	}
	$imgout($minim);	//显示缩放后的图片
	$minfilename = "s_".$imgfile;	//保存文件名为原文件名加一个前缀"s_"
	$imgout($minim,$minfilename);	//保存缩放后的文件
	
	//释放大小图资源
	imagedestroy($maxim);
	imagedestroy($minim);
?>

将其修改一下就可以成为一个图片缩放函数thumb()

<?php
function thumb($maxfile,$minw,$minh) {
	$imgfile = $maxfile;
	
	//大图宽高
	$imgarr = getimagesize($imgfile);
	$maxw = $imgarr[0];
	$maxh = $imgarr[1];
	$maxt = $imgarr[2];
	$maxm = $imgarr['mine'];
	
	//大图资源
	$maxim = imagecreatefromjpeg($imgfile);
	
	//小图资源
	$minw = $minw;
	$minh = $minh;
	$minim = imagecreatetruecolor($minw,$minh);
	
	//等比例缩放
	if(($minw/$maxw) > ($minh/$maxh)) {
		$bili = floor($minh/$maxh);
	}
	else {
		$bili = floor($minw/$maxw);
	}
	
	//把大图缩放成小图
	imagecopyresampled($minim,$maxim,0,0,0,0,$minw,$minh,$maxw,$maxh);
	
	//小图输出
	header("content-type:{$maxm}");
	
	//判断类型
	switch($maxt) {
		case 1 :
			$imgout = "imagegif";
			break;
		case 2 :
			$imgout = "imagejpeg";
			break;
		case 3 :
			$imgout = "imagepng";
			break;
	}
	$imgout($minim);	//显示缩放后的图片
	$minfilename = "s_".$imgfile;	//保存文件名为原文件名加一个前缀"s_"
	$imgout($minim,$minfilename);	//保存缩放后的文件
	
	//释放大小图资源
	imagedestroy($maxim);
	imagedestroy($minim);
}

thumb("1.jpg" , 50 , 100);
?>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值