php比例スケーリング画像

Jul 28, 2016 am 08:26 AM
break NIM param

手順は次のとおりです:
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 関数を使用してスケーリングを実現します

7. このoutputImage関数(カスタム関数)を使用します


8. 画像リソースを解放します

スケーリングの前後に示すように、この imagedestroy 関数


を使用します。 750*525


200*140



コードは次のとおりです: php等比缩放图片

<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); }); });  php等比缩放图片 上記では、PHP における画像の比例拡大縮小について内容を含めて紹介しましたが、PHP チュートリアルに興味のある友人に役立つことを願っています。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

「AI Factory」はソフトウェア スタック全体の再構築を促進し、NVIDIA はユーザーが展開できる Llama3 NIM コンテナを提供します 「AI Factory」はソフトウェア スタック全体の再構築を促進し、NVIDIA はユーザーが展開できる Llama3 NIM コンテナを提供します Jun 08, 2024 pm 07:25 PM

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ステートメントでbreakを使用しないことについて話しましょう PHPのswitchステートメントでbreakを使用しないことについて話しましょう Mar 20, 2023 pm 04:55 PM

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

PHPでのbreakの使い方は何ですか PHPでのbreakの使い方は何ですか Jan 31, 2023 pm 07:33 PM

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

Go 言語での Break stop ステートメントの用途は何ですか? Go 言語での Break stop ステートメントの用途は何ですか? Jan 18, 2023 pm 03:46 PM

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

JS ループ学習: ループから抜け出すステートメントの Break と continue JS ループ学習: ループから抜け出すステートメントの Break と continue Aug 03, 2022 pm 07:08 PM

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

Javaのbreakキーワードの機能は何ですか? Javaのbreakキーワードの機能は何ですか? Apr 23, 2023 am 10:13 AM

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

Linuxパラメータとは何ですか Linuxパラメータとは何ですか Mar 10, 2023 am 08:58 AM

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

PHPにおけるbreak文の機能と注意点 PHPにおけるbreak文の機能と注意点 Mar 20, 2024 pm 05:33 PM

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

See all articles