利用php程序放大图片

等比例放大或缩小图片:[放大图片可能会引起变形]

代码如下:
function resizeimage($srcfile,$mySize){
		$size=getimagesize($srcfile);
		switch($size[2]){
			case 1:
				$src_img=imagecreatefromgif($srcfile);
				$output = 'imagegif';
				$mime = 'gif';
				break;
			case 2:
				$src_img=imagecreatefromjpeg($srcfile);
				$output = 'imagejpeg';
				$mime = 'jpeg';
				break;
			case 3:
				$src_img=imagecreatefrompng($srcfile);
				$output = 'imagepng';
				$mime = 'png';
				break;
		}
		//源图片的宽度和高度
		$oldImg['w']=imagesx($src_img);
		$oldImg['h']=imagesy($src_img);
		if ($oldImg['w']<=$mySize['w'] && $oldImg['h']<$mySize['h']){
			$rate1=$mySize['w']/$oldImg['w'];
			$rate2=$mySize['h']/$oldImg['h'];
			// 按比例小的缩放
			if ($rate1>$rate2){$rate=$rate2;}else{$rate=$rate1;}
		}elseif ($oldImg['w']>$mySize['w'] && $oldImg['h']<$mySize['h']){
			// 按较大比例着缩放
			$rate=$mySize['w']/$oldImg['w'];
		}elseif ($oldImg['w']<$mySize['w'] && $oldImg['h']>$mySize['h']){
			$rate=$mySize['h']/$oldImg['h'];
		}elseif ($oldImg['w']>$mySize['w'] && $oldImg['h']>$mySize['h']){
			$rate1=$mySize['w']/$oldImg['w'];
			$rate2=$mySize['h']/$oldImg['h'];
			// 按比例小的缩放
			if ($rate1>$rate2){$rate=$rate2;}else{$rate=$rate1;}
		}
		$newImg['w']=$oldImg['w']*$rate;
		$newImg['h']=$oldImg['h']*$rate;

		// 采样,缩放
			$thumb_img = imagecreatetruecolor($newImg['w'], $newImg['h']);
			// echo $thumb_img;
			// die;
		// 设置采样区域
			$src_area_x = 0;
			$src_area_y = 0;
			$src_area_w = $oldImg['w'];
			$src_area_h = $oldImg['h'];
		// 设置拷贝区域
			$thumb_area_x = 0;
			$thumb_area_y =0;
			$thumb_area_w = $newImg['w'];
			$thumb_area_h = $newImg['h'];
		imagecopyresampled($thumb_img, $src_img, $thumb_area_x, $thumb_area_y, $src_area_x, $src_area_y, $thumb_area_w, $thumb_area_h, $src_area_w, $src_area_w);
		// 输出
		header("Content-type:image/{$mime}");
		$output($thumb_img);
		// 销毁资源
		// 销毁画布
		imagedestroy($img);
		imagedestroy($thumb_img);
	} 
	$mySize=array('w'=>690,'h'=>56);
	$imgSize=resizeimage("22.png",$mySize);


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章