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).
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.
<?php function ImageShrink($imgfile,$minx,$miny){ //获取大图信息 $imgarr=getimagesize($imgfile); $maxx=$imgarr[0];//宽 $maxy=$imgarr[1];//长 $maxt=$imgarr[2];//格式 $maxm=$imgarr['mime'];//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,'copypic.jpg'); //释放资源 imagedestroy($maxim); imagedestroy($minim); } ImageShrink("picture/apple.jpg",50,50); ?>
(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.