php比例スケーリング画像
手順は次のとおりです:
1. 写真に関する基本情報を取得します
この getimagesize 関数を使用します
2. 画像リソースの種類を決定し、対応する画像リソースを作成します
この getPicType 関数 (カスタム関数) を使用します
3. スケーリング率を計算します
原則は、最小のスケーリング係数を採用することです。たとえば、800*600 の画像が 200*200 未満にスケーリングされる場合、スケーリング係数は、scale=200/800>200/600?200/600:200/800 になります。 1/4
4。
wdith = 床(800*1/4);
高さ = 床(600*1/4);
その結果、ズームされた画像は 200*150 になります
5. 対象の画像リソースを作成します
この imagecreatetruecolor 関数を使用して、トゥルー カラー イメージを作成します
6.
この imagecopyresampled 関数を使用してスケーリングを実現します
8. 画像リソースを解放します
を使用します。
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>
').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i
').text(i)); }; $numbering.fadeIn(1700); }); });


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









6月2日の当サイトのニュースによると、現在開催中のHuang Renxun 2024 Taipei Computexの基調講演で、Huang Renxun氏は、生成人工知能がソフトウェアスタック全体の再構築を促進すると紹介し、NIM(Nvidia Inference Microservices)のクラウドネイティブマイクロサービスをデモしました。 。 Nvidia は、「AI ファクトリー」が新たな産業革命を引き起こすと信じています。Microsoft が開拓したソフトウェア業界を例に挙げると、Huang Renxun 氏は、生成人工知能がそのフルスタックの再構築を促進すると信じています。あらゆる規模の企業による AI サービスの導入を促進するために、NVIDIA は今年 3 月に NIM (Nvidia Inference Microservices) クラウドネイティブ マイクロサービスを開始しました。 NIM+ は、市場投入までの時間を短縮するために最適化されたクラウドネイティブのマイクロサービスのスイートです

PHP で複数の分岐を選択するために switch ステートメントを使用するのは非常に一般的で、通常は各分岐の後で switch ステートメントを終了するために Break ステートメントが使用されます。ただし、break文を使いたくない場合もあるので、この記事ではPHPのswitch文でbreak文を使用しない場合について紹介します。

PHP では、break は現在の構文構造から飛び出て次のステートメントを実行するために使用されます。switch、for、while、do while などのステートメントで使用でき、ループ本体のコードを終了して飛び出すことができます。現在のループを直ちに終了し、次のステートメントを実行します。 Break ステートメントは、ループから飛び出すレベルの数を表すパラメーター n を受け取ることができます。複数のループから飛び出す場合は、n を使用して飛び出すレベルの数を表すことができます。パラメータがない場合、デフォルトでは現在のループから抜け出します。

Go 言語では、break stop ステートメントは、loop ステートメント内のループから抜け出し、ループの後でステートメントの実行を開始するために使用されます。 Break ステートメントは、for、switch、select のコード ブロックを終了できます。さらに、break ステートメントは、ステートメントの後にラベルを追加して、特定のラベルに対応するコード ブロックの終了を示すこともできます。ラベル要件は、対応するラベルで定義する必要があります。 for、switch、select のコード ブロック。

前回の記事では、JS のいくつかのループ制御構造 (while ループ、do-while ループ、for ループ) について説明しました。ループから抜け出すための Break ステートメントと continue ステートメントについて説明します。みんな!

注1. ブレークの機能は、現在のループブロック(for、while、dowhile)またはプログラムブロック(switch)から飛び出すことです。 2. ループ ブロックの機能は、現在ループ内にあるループ本体から飛び出すことです。プログラム ブロックの機能は、中断して次のケース条件を比較することです。 switch ステートメントを終了するには、switch ステートメントで Break を使用します。ループ内で Break を使用すると、ループから抜け出します。他の場所でbreakを使用しても意味がありません。例 intsum=0;inti;for(i=1;i

Linux param は、コマンド ライン パラメータを渡すために使用される「module_param」関数を指します。ユーザー モードでプログラミングする場合、コマンド ライン パラメータは「main()」のパラメータを介して渡すことができ、カーネル モジュールを作成する場合は、「 module_param()」を使用してパラメータを渡します。

PHPにおけるbreak文の役割と注意点 PHPプログラミングにおいて、break文とはループやswitch文の実行を中断するための制御文です。 Break ステートメントは現在のループまたは switch ステートメントからすぐに飛び出すことができるため、プログラムの実行フローがループまたは switch ステートメントの後のコード部分に直接ジャンプできるため、プログラム実行の効率と柔軟性が向上します。実際のプログラミングでは、break 文は重要な役割を果たしますが、細かい点や注意事項にも注意が必要です。 1.b
