php等比缩放图片
步骤如下:
1.获取图片的基本信息
用这个getimagesize函数
2.判断图片资源类型并创建对应图片资源
用这个getPicType函数(自定义函数)
3.计算缩放比例
原则是取最小的缩放系数.例如:800*600的图片,缩放到200*200以下,则缩放系数为scale=200/800>200/600?200/600:200/800; 因为1/4
4.计算缩放后的尺寸
wdith = floor(800*1/4);向下取整
height = floor(600*1/4);
结果缩放后的图片变为200*150
5.创建目标图像资源
用这个imagecreatetruecolor函数,创建一个真彩的图像
6.等比缩放
用这个imagecopyresampled函数实现缩放
7.输出图像
用这个outputImage函数(自定义函数)
8.释放图片资源
用这个imagedestroy函数
缩放前后如图:
750*525
200*140
代码如下:
<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>
以上就介绍了 php等比缩放图片,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Laut Nachrichten dieser Website vom 2. Juni stellte Huang Renxun bei der laufenden Keynote-Rede von Huang Renxun 2024 Taipei Computex vor, dass generative künstliche Intelligenz die Neugestaltung des gesamten Software-Stacks fördern wird, und demonstrierte seine cloudnativen Mikrodienste NIM (Nvidia Inference Microservices). . Nvidia glaubt, dass die „KI-Fabrik“ eine neue industrielle Revolution auslösen wird: Am Beispiel der von Microsoft vorangetriebenen Softwareindustrie glaubt Huang Renxun, dass generative künstliche Intelligenz deren Umgestaltung im gesamten Stack vorantreiben wird. Um die Bereitstellung von KI-Diensten durch Unternehmen jeder Größe zu erleichtern, hat NVIDIA im März dieses Jahres die cloudnativen Mikrodienste NIM (Nvidia Inference Microservices) eingeführt. NIM+ ist eine Suite cloudnativer Mikroservices, die darauf optimiert sind, die Markteinführungszeit zu verkürzen

Es ist sehr üblich, in PHP Switch-Anweisungen zu verwenden, um mehrere Zweige auszuwählen. Normalerweise wird eine Break-Anweisung verwendet, um die Switch-Anweisung nach jedem Zweig zu verlassen. Es gibt jedoch Situationen, in denen wir die Break-Anweisung nicht verwenden möchten. In diesem Artikel wird die Situation vorgestellt, in der Break in der PHP-Switch-Anweisung nicht verwendet wird.

In PHP wird break verwendet, um aus der aktuellen Syntaxstruktur zu springen und die folgende Anweisung auszuführen. Es kann in Anweisungen wie switch, for, while und do while verwendet werden. Es kann den Code des Schleifenkörpers beenden und herausspringen der aktuellen Schleife sofort und führen Sie die folgenden Anweisungen nach dem Schleifencode aus. Die break-Anweisung kann einen Parameter n annehmen, der die Anzahl der Ebenen angibt, aus denen aus der Schleife gesprungen werden soll. Wenn Sie aus mehreren Schleifen springen möchten, können Sie n verwenden, um die Anzahl der Ebenen anzugeben, aus denen herausgesprungen werden soll Der Standardwert besteht darin, aus der aktuellen Schleife zu springen.

Im vorherigen Artikel haben wir Sie dazu gebracht, verschiedene Schleifenkontrollstrukturen in JS kennenzulernen (while- und do-while-Schleifen, for-Schleifen). Ich hoffe, dass dies hilfreich sein wird alle!

In der Go-Sprache wird die Break-Stop-Anweisung verwendet, um in einer Schleifenanweisung aus der Schleife zu springen und mit der Ausführung der Anweisung nach der Schleife zu beginnen. Die Break-Anweisung kann die Codeblöcke for, switch und select beenden. Darüber hinaus kann die Break-Anweisung auch eine Beschriftung nach der Anweisung hinzufügen, um das Verlassen des Codeblocks anzuzeigen, der einer bestimmten Beschriftung entspricht Codeblock von for, wechseln und auswählen.

Hinweis 1. Die Funktion von break besteht darin, aus dem aktuellen Schleifenblock (for, while, dowhile) oder Programmblock (switch) zu springen. 2. Die Funktion des Schleifenblocks besteht darin, aus dem Schleifenkörper zu springen, der sich aktuell in der Schleife befindet. Die Funktion des Programmblocks besteht darin, die nächste Fallbedingung zu unterbrechen und zu vergleichen. Verwenden Sie break in einer Switch-Anweisung, um die Switch-Anweisung zu beenden. Wenn break in einer Schleife verwendet wird, wird die Schleife verlassen. Es macht keinen Sinn, break an anderer Stelle zu verwenden. Beispiel intsum=0;inti;for(i=1;i

Linux param bezieht sich auf die Funktion „module_param“, die zum Übergeben von Befehlszeilenparametern verwendet wird. Beim Programmieren im Benutzermodus können Befehlszeilenparameter über die Parameter von „main()“ übergeben werden. Beim Schreiben eines Kernelmoduls können „ module_param()“, um Parameter zu übergeben.

Die Rolle und Vorsichtsmaßnahmen der Break-Anweisung in PHP In der PHP-Programmierung ist die Break-Anweisung eine Steueranweisung, die verwendet wird, um die Ausführung einer Schleife oder Switch-Anweisung zu unterbrechen. Die Break-Anweisung kann sofort aus der aktuellen Schleife oder Switch-Anweisung springen, sodass der Programmausführungsfluss direkt zum Codeteil nach der Schleife oder Switch-Anweisung springen kann, wodurch die Effizienz und Flexibilität der Programmausführung verbessert wird. In der tatsächlichen Programmierung spielt die Break-Anweisung eine wichtige Rolle, erfordert jedoch auch die Beachtung einiger Details und Vorsichtsmaßnahmen. 1.b
