PHP使用GD函数库制作缩略图+保存本地

<?php
	 // $name="./img/1.jpg";
	 // $w=300;
	 // $h=300;
	 // $prefix='thumb_111';
	 //缩略前缀,原图保留,缩略图也要保留
	 //获取相关参数,计算比例
	
	 	function suolue($name, $w,$h,$prefix='thumb_111'){
			function getinfo($name){
				
				//getimagesize($dname)函数可以动态的获取图片类型,大小,宽度和高度等
				$info=getimagesize($name);
				$width=$info[0];
				$height=$info[1];
				$mime=$info['mime'];

				switch ($mime) {
					case 'image/jpeg':
					$res=imagecreatefromjpeg($name);
					break;
					case 'image/gif':
					$res=imagecreatefromgif($name);
					break;
					case 'image/png':
					$res=imagecreatefrompng($name);
					break;
					case 'image/wbmp':
					$res=imagecreatefromwbmp($name);
					break;
				}
				return array('width'=>$width,'height'=>$height,'res'=>$res);
			}
			 $info=getinfo($name);
			$width=$info['width'];
			$height=$info['height'];
			$res=$info['res'];
			//判断图片是横图还是竖图
			if($width>$height){
				//横图
				$b1=$height/$width;
				$h=$w*$b1;
			}else{
				//竖图
				$b1=$width/$height;
				$w=$h*$b1;
			}
			//3,创建一个画布,画布的宽度,高度为要锁房的宽度和高度
			$img=imagecreatetruecolor($w,$h);
			//4,开始把图片重新设置大小
			imagecopyresampled($img, $res, 0, 0, 0, 0, $w, $h, $width, $height);

			//5,输出图像
			// header("content-type:image/png");
			//5,会趋于扩展名,生成新文件名,保存图像
			$ext=pathinfo($name,PATHINFO_EXTENSION);
			$rand_name=$prefix.md5(time().mt_rand()).".".$ext;
			// imagepng($img);
			switch(strtolower($ext)){ 
				case 'jpg':
				case 'jpeg':
				case 'jpe':
					imagejpeg($img,$rand_name);
					break;
				case 'png':
					imagepng($img,$rand_name);
					break;
				case 'gif':
					imagegif($img,$rand_name);
					break;
				case 'bmp':
				case 'wbmp':
					imagewbmp($img,$rand_name);
					break;
			}
			//销毁资源
			imagedestroy($res);
			imagedestroy($img);
		}	


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值