前回の記事では『PHPでファイルをアップロードするには?読めばわかる! 》では、PHP でファイルをアップロードする方法を詳しく紹介しています。この記事では、PHP での画像処理に関する関連知識を見ていきます。皆様のお役に立てれば幸いです。
画像処理は、PHP の作業で頻繁に発生するものであり、画像検証コードや画像の透かしなど、画像を処理する必要がある多くのシナリオに遭遇します。実際、画像処理の学習の焦点は、PHP の GD システムの機能を学習することです。PHP の画像処理には GD ライブラリのサポートが必要なので、最初に GD ライブラリに関する関連知識を見てみましょう。
GD ライブラリ
GD ライブラリは、グラフィックス イメージを作成するための関数ライブラリとして理解できます。実際には C 言語で書かれており、PHP で使用できます。PHP に加えて、Perl などの言語でも使用できます。GD ライブラリには、画像を処理するためのインターフェイスが多数用意されています。
GD は、 PHP このライブラリでは、ページ上にさまざまなグラフィック画像、統計グラフ、画像検証コードを描画できます。これらは、GD ライブラリを使用して実装することもできます。
例は次のとおりです。
<?php phpinfo(); ?>
入力後の出力結果に、以下に示す 2 つのオプションが表示された場合、現在のマシンが GD による画像処理をサポートしていることを意味します。
または、
<?php print_r(gd_info()); ?>
入力後に実行し、出力結果が下図のようであれば、現在のマシンが GD イメージによる処理をサポートしていることを意味します。
インストールされていない場合は、Windows システムの php.ini 設定ファイルの「extension=php_gd2.dll」項目を変更することもできます。以上でコメント削除方法は完了です。
PHP では、GD ライブラリを使用して画像を処理する操作は、通常 4 つの基本ステップに分かれています。
キャンバスの作成
描画画像
#出力画像
#リソースのリリース
キャンバスの作成
描画と画像処理はすべて、理解できる背景画像 (キャンバス) 上で完了する必要があります。画像の場合、画像情報を保存するためのキャンバスとしてメモリ内に一時領域があり、今後の画像操作はこの領域 (キャンバス) 上で実行されます。imagecreate() と
imagecreatetruecolor() はキャンバスの作成に使用され、その構文形式は次のとおりです。 , $width 作成したキャンバスの幅が画像の幅としてもわかるという意味 $height 作成したキャンバスの高さも画像の高さになるという意味
例は次のとおりです。
imagecreate(int $width, int $height) imagecreatetruecolor(int $width, int $height)
キャンバスは作成されたばかりで何もないため、ブラウザはキャンバスを出力しませんが、出力することはできます。画像の幅と高さを取得するために、imagesx() と imagesy() を通過させます:
<?php $img = @imagecreatetruecolor(120, 20) or die('画布创建失败!'); ?>出力結果:
これから、キャンバスの作成が完了しました。
- : GIF ファイルまたは URL を介して新しい画像を作成します
-
imagecreatefromjpeg() : JPEG ファイルまたは UR を介して新しい画像を作成します -
imagecreatefrompng() : PNG ファイルまたは URL を通じて新しい画像を作成します -
: 作成WBMP ファイルまたは URL を介した新しい画像 画像##imagecreatefromwbmp()
-
出力画像
上記の例では、キャンバスが正常に作成された場合は、PHP 形式の画像とは異なり、出力に異なる関数が必要になります。異なる関数は次のとおりです:
imagegif()
: 出力GIF 形式の画像をブラウザまたはファイルに出力-
: JPEG 形式の画像をブラウザまたはファイルに出力imagejpeg()
-
: PNG 形式の画像をブラウザまたはファイルに出力しますimagepng( )
-
構文形式は次のとおりです:
imagegif(resource $image[, string $filename]) imagejpeg(resource $image[, string $filename[, int $quality]]) imagepng(resource $image[, string $filename])
其中,$image为创建的一个图像资源;$filename表示为参数,用来设置文件需要保存的路径。
示例如下:
首先我在根目录中已经保存了一个名为php.png的图像文件
<?php header('Content-type:image/jpeg'); $image= imagecreatefrompng('php.png'); imagepng($image); ?>
输出结果:
通过imagecreatefrompng()函数和imagepng()成功的输出了一个格式为png的图片。
释放图像资源
通过上述示例已经成功的输出了图片,在图片的资源使用完成后,通常需要释放图像处理时所占用的内存,那应该怎样操作呢?
在PHP中我们通过imagedestroy() 函数来释放图像资源,语法格式如下:
imagedestroy(resource $image)
其中$image表示需要释放资源的图像
示例如下:
<?php header('Content-type:image/jpeg'); $image= imagecreatefrompng('php.png'); imagepng($image); imagedestroy($image); ?>
因为释放图像资源的操作是没有输出内容的,所以就不列出输出结果了。
推荐学习:《PHP视频教程》
以上がPHPで画像を出力するにはどうすればよいですか? (凡例の詳しい説明)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

この記事では、酸とベースのデータベースモデルを比較し、その特性と適切なユースケースを詳述しています。酸は、財務およびeコマースアプリケーションに適したデータの整合性と一貫性を優先し、ベースは可用性に焦点を当て、

この記事では、コードインジェクションのような脆弱性を防ぐために、PHPファイルのアップロードを確保することについて説明します。ファイルタイプの検証、セキュアストレージ、およびアプリケーションセキュリティを強化するエラー処理に焦点を当てています。

記事では、組み込み関数、ホワイトリストアプローチ、サーバー側の検証などの手法に焦点を当てたセキュリティを強化するためのPHP入力検証のベストプラクティスについて説明します。

この記事では、Token BucketやLeaky BucketなどのアルゴリズムやSymfony/Rate-Limiterなどのライブラリを使用するなど、PHPでAPIレート制限を実装するための戦略について説明します。また、監視、動的に調整されたレートの制限、および手をカバーします

この記事では、パスワードを保護するためにPHPでpassword_hashとpassword_verifyを使用することの利点について説明します。主な議論は、これらの関数が自動塩の生成、強力なハッシュアルゴリズム、およびSecurを通じてパスワード保護を強化するということです

この記事では、PHPおよび緩和戦略におけるOWASPトップ10の脆弱性について説明します。重要な問題には、PHPアプリケーションを監視および保護するための推奨ツールを備えたインジェクション、認証の壊れ、XSSが含まれます。

この記事では、PHPでのXSS攻撃を防ぐための戦略について説明し、入力の消毒、出力エンコード、セキュリティを向上させるライブラリとフレームワークの使用に焦点を当てています。

この記事では、PHPでのインターフェイスと抽象クラスの使用について説明し、それぞれをいつ使用するかに焦点を当てています。インターフェイスは、無関係なクラスや複数の継承に適した、実装なしで契約を定義します。抽象クラスは共通の機能を提供します


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません
