Home  >  Article  >  Backend Development  >  PHP Example————Image scaling function_PHP tutorial

PHP Example————Image scaling function_PHP tutorial

WBOY
WBOYOriginal
2016-07-13 10:19:04912browse

PHP Example————Image scaling function

In the process of website development, it is often necessary to perform some processing on some pictures, such as scaling, cropping, adding watermarks, etc. Of course, these functions can not only be used in the process of developing websites. When you need to do some processing on pictures, you can encapsulate this function into a function. When you want to process pictures, add the required parameters to the function according to your own requirements. Isn’t it done? Although this may be a bit difficult for novices to learn at once, it will become familiar the second time. Okay, let’s get to the point. Today I will share a function for scaling images proportionally. Students who need it can make slight modifications and use it themselves, which saves them having to write it themselves (masters, please ignore it).

1. First, learn about the functions needed for image scaling

If you don’t understand anything, you can use the PHP development manual to search it. The above is very clear and is a very good tool for learning, whether you are a novice or a veteran.

2. Share the code, the comments are very clear (I feel good about myself, I hope everyone can correct me if I have any shortcomings)

<?php
function ImageShrink($imgfile,$minx,$miny){

	//获取大图信息
	$imgarr=getimagesize($imgfile);
	$maxx=$imgarr[0];//宽
	$maxy=$imgarr[1];//长
	$maxt=$imgarr[2];//格式
	$maxm=$imgarr[&#39;mime&#39;];//mime类型

	//大图资源
	$maxim=imagecreatefromjpeg($imgfile);

	//缩放判断
	if(($minx/$maxx)>($miny/$maxy)){
		$scale=$miny/$maxy;
	}else{
		$scale=$minx/$maxx;	
	}

	//对所求值进行取整
	$minx=floor($maxx*$scale);
	$miny=floor($maxy*$scale);
	
	//添加小图
	$minim=imagecreatetruecolor($minx,$miny);

	//缩放函数
	imagecopyresampled($minim,$maxim,0,0,0,0,$minx,$miny,$maxx,$maxy);

	//小图输出
	header("content-type:{$maxm}");

	//判断图片类型
	switch($maxt){
		case 1:
			$imgout="imagegif";
			break;
		case 2:
			$imgout="imagejpeg";
			break;
		case 3:
			$imgout="imagepng";
			break;
	}
	//变量函数
	$imgout($minim,&#39;copypic.jpg&#39;);
	
	
	//释放资源
	imagedestroy($maxim);
	imagedestroy($minim);
}

ImageShrink("picture/apple.jpg",50,50);
?>


3. There are several places in the whole code that are not easy to understand. Please explain them briefly

(1) The return value of the getimagesize() function is an array, which contains the image size, format and other information. The value can be obtained based on the key-value pair, assigned to the variable, and then directly passed in the variable where it is needed later. Regarding functions, please see the manual for details.

(2) When performing proportional scaling, we need to consider the scaling ratio, compare the length and width of the small image with the length and width of the large image, and choose the smaller ratio as the scaling ratio. It’s not very easy to understand here, you can try it yourself.

(3) After the large image is zoomed, the format of the small image does not change, so when a function is needed to output the image later, to determine the image format, a variable function needs to be used here. Assigning a function to a variable feels quite awkward when used.

(4) The format of the saved picture can be set by yourself, and the saving path is the same as the original picture. Other parameters depend on personal needs.



www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/879182.htmlTechArticlePHP Example————Picture proportional scaling function In the process of website development, some pictures often need to be resized Some processing, such as scaling, cropping, watermarking, etc. Of course these features...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn