php proportional scaling pictures
The steps are as follows:
1. Get basic information about the picture
Use this getimagesize function
2. Determine the image resource type and create the corresponding image resource
Use this getPicType function (custom function)
3. Calculate the scaling ratio
The principle is to take the smallest scaling factor. For example: if an 800*600 picture is scaled to less than 200*200, the scaling factor is scale=200/800>200/600?200/600:200/800; because 1/4 < ; 1/3 so choose the scaling factor of 1/4
4. Calculate the scaled size
wdith = floor(800*1/4); round down
height = floor(600*1/4);
As a result, the zoomed image becomes 200*150
5. Create the target image resource
Use this imagecreatetruecolor function to create a true color image
6. Scale proportionally
Use this imagecopyresampled function to achieve scaling
7. Output image
Use this outputImage function (custom function)
8. Release image resources
Use this imagedestroy function
as shown before and after scaling:
750*525
200*140
The code is as follows:
<code><span>/** *<span> @function</span> 等比缩放函数(以保存的方式实现) *<span> @param</span> string $picname 被缩放的处理图片源 *<span> @param</span> int $maxX 缩放后图片的最大宽度 *<span> @param</span> int $maxY 缩放后图片的最大高度 *<span> @param</span> string $pre 缩放后图片名的前缀名 *<span> @return</span> string 返回后的图片名称(带路径),如a.jpg --> s_a.jpg */</span><span><span>function</span><span>scalePic</span><span>(<span>$picname</span>,<span>$maxX</span>=<span>100</span>,<span>$maxY</span>=<span>100</span>,<span>$pre</span>=<span>'s_'</span>)</span> {</span><span>$info</span> = getimagesize(<span>$picname</span>); <span>//获取图片的基本信息</span><span>$width</span> = <span>$info</span>[<span>0</span>];<span>//获取宽度</span><span>$height</span> = <span>$info</span>[<span>1</span>];<span>//获取高度</span><span>//判断图片资源类型并创建对应图片资源</span><span>$im</span> = getPicType(<span>$info</span>[<span>2</span>],<span>$picname</span>); <span>//计算缩放比例</span><span>$scale</span> = (<span>$maxX</span>/<span>$width</span>)>(<span>$maxY</span>/<span>$height</span>)?<span>$maxY</span>/<span>$height</span>:<span>$maxX</span>/<span>$width</span>; <span>//计算缩放后的尺寸</span><span>$sWidth</span> = floor(<span>$width</span>*<span>$scale</span>); <span>$sHeight</span> = floor(<span>$height</span>*<span>$scale</span>); <span>//创建目标图像资源</span><span>$nim</span> = imagecreatetruecolor(<span>$sWidth</span>,<span>$sHeight</span>); <span>//等比缩放</span> imagecopyresampled(<span>$nim</span>,<span>$im</span>,<span>0</span>,<span>0</span>,<span>0</span>,<span>0</span>,<span>$sWidth</span>,<span>$sHeight</span>,<span>$width</span>,<span>$height</span>); <span>//输出图像</span><span>$newPicName</span> = outputImage(<span>$picname</span>,<span>$pre</span>,<span>$nim</span>); <span>//释放图片资源</span> imagedestroy(<span>$im</span>); imagedestroy(<span>$nim</span>); <span>return</span><span>$newPicName</span>; } <span>/** * function 判断并返回图片的类型(以资源方式返回) *<span> @param</span> int $type 图片类型 *<span> @param</span> string $picname 图片名字 *<span> @return</span> 返回对应图片资源 */</span><span><span>function</span><span>getPicType</span><span>(<span>$type</span>,<span>$picname</span>)</span> {</span><span>$im</span>=<span>null</span>; <span>switch</span>(<span>$type</span>) { <span>case</span><span>1</span>: <span>//GIF</span><span>$im</span> = imagecreatefromgif(<span>$picname</span>); <span>break</span>; <span>case</span><span>2</span>: <span>//JPG</span><span>$im</span> = imagecreatefromjpeg(<span>$picname</span>); <span>break</span>; <span>case</span><span>3</span>: <span>//PNG</span><span>$im</span> = imagecreatefrompng(<span>$picname</span>); <span>break</span>; <span>case</span><span>4</span>: <span>//BMP</span><span>$im</span> = imagecreatefromwbmp(<span>$picname</span>); <span>break</span>; <span>default</span>: <span>die</span>(<span>"不认识图片类型"</span>); <span>break</span>; } <span>return</span><span>$im</span>; } <span>/** * function 输出图像 *<span> @param</span> string $picname 图片名字 *<span> @param</span> string $pre 新图片名前缀 *<span> @param</span> resourse $nim 要输出的图像资源 *<span> @return</span> 返回新的图片名 */</span><span><span>function</span><span>outputImage</span><span>(<span>$picname</span>,<span>$pre</span>,<span>$nim</span>)</span> {</span><span>$info</span> = getimagesize(<span>$picname</span>); <span>$picInfo</span> = pathInfo(<span>$picname</span>); <span>$newPicName</span> = <span>$picInfo</span>[<span>'dirname'</span>].<span>'/'</span>.<span>$pre</span>.<span>$picInfo</span>[<span>'basename'</span>];<span>//输出文件的路径</span><span>switch</span>(<span>$info</span>[<span>2</span>]) { <span>case</span><span>1</span>: imagegif(<span>$nim</span>,<span>$newPicName</span>); <span>break</span>; <span>case</span><span>2</span>: imagejpeg(<span>$nim</span>,<span>$newPicName</span>); <span>break</span>; <span>case</span><span>3</span>: imagepng(<span>$nim</span>,<span>$newPicName</span>); <span>break</span>; <span>case</span><span>4</span>: imagewbmp(<span>$nim</span>,<span>$newPicName</span>); <span>break</span>; } <span>return</span><span>$newPicName</span>; }</code>
The above introduces the proportional scaling of pictures in PHP, including aspects of the content. I hope it will be helpful to friends who are interested in PHP tutorials.

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



According to news from this site on June 2, at the ongoing Huang Renxun 2024 Taipei Computex keynote speech, Huang Renxun introduced that generative artificial intelligence will promote the reshaping of the full stack of software and demonstrated its NIM (Nvidia Inference Microservices) cloud-native microservices. Nvidia believes that the "AI factory" will set off a new industrial revolution: taking the software industry pioneered by Microsoft as an example, Huang Renxun believes that generative artificial intelligence will promote its full-stack reshaping. To facilitate the deployment of AI services by enterprises of all sizes, NVIDIA launched NIM (Nvidia Inference Microservices) cloud-native microservices in March this year. NIM+ is a suite of cloud-native microservices optimized to reduce time to market

Note 1. The function of break is to jump out of the current loop block (for, while, dowhile) or program block (switch). 2. The function of the loop block is to jump out of the loop body currently in the loop. The function of the program block is to interrupt and compare the next case condition. Use break in a switch statement to terminate the switch statement. When break is used in a loop, it breaks out of the loop. There is no point in using break elsewhere. Example intsum=0;inti;for(i=1;i

It is very common to use switch statements to select multiple branches in PHP. Usually, a break statement is used to exit the switch statement after each branch. However, there are situations where we do not want to use the break statement. This article will introduce the situation of not using break in the PHP switch statement.

In the previous article, we took you to learn several loop control structures in JS (while and do-while loops, for loops). Let’s talk about the break and continue statements to jump out of the loop. I hope it will be helpful to everyone!

In PHP, break is used to jump out of the current syntax structure and execute the following statements; it can be used in statements such as switch, for, while, and do while. It can terminate the code of the loop body and jump out of the current loop immediately, and execute the following statements after the loop. code. The break statement can take a parameter n, which represents the number of levels to jump out of the loop. If you want to jump out of multiple loops, you can use n to represent the number of levels to jump out of. If there is no parameter, the default is to jump out of the current loop.

In the Go language, the break stop statement is used to jump out of the loop in a loop statement and start executing the statement after the loop. The break statement can end the code blocks of for, switch and select. In addition, the break statement can also add a label after the statement to indicate exiting the code block corresponding to a certain label. The label requirement must be defined on the corresponding code block of for, switch and select. .

Linux param refers to the "module_param" function, which is used to pass command line parameters; when programming in user mode, command line parameters can be passed through the parameters of "main()", and when writing a kernel module, pass "module_param()" to pass parameters.

The role and precautions of the break statement in PHP In PHP programming, the break statement is a control statement used to interrupt the execution of a loop or switch statement. The break statement can immediately jump out of the current loop or switch statement, allowing the program execution flow to jump directly to the code part after the loop or switch statement, thus improving the efficiency and flexibility of program execution. In actual programming, the break statement plays an important role, but it also requires attention to some details and precautions. 1.b
