前回の記事では『PHPで画像を出力するには? (凡例の詳細説明) 」では、PHP で画像を出力する方法を詳しく紹介しています。この記事では引き続き、PHP で画像を描画する方法について説明します。お役に立てれば幸いです。
PHP での画像の描画は、すべて前回の記事のキャンバスをベースにして、キャンバスを作成し、そのキャンバス上に画像を描画します。画像というと色を思い浮かべます。まず、PHP で画像の色を定義する方法を見てみましょう。
画像定義色
PHPを使って画像を操作する場合、必然的に色を設定したり、アウトラインの色を変えたりするのですが、これが出てきました美しい画像。では、PHP で画像に色を与えるにはどうすればよいでしょうか?このとき、imagecolorallocate() と imagecolorallocatealpha() の 2 つの関数を使用します。次に、これら 2 つの関数の使用方法を見てみましょう。
#imagecolorallocate()
Function
imagecolorallocate(resource $image, int $red, int $green, int $blue)このうち、$image は色を設定する必要がある画像を表します設定すると、関数は識別子を返します。指定された RGB コンポーネントで構成される色を表します。$red、$green、$blue はそれぞれ、必要な色の赤、緑、青のコンポーネントです。値の範囲は 0 からの整数です。 ~ 255 または 16 進数の 0x00 ~ 0xFF。
<?php $image = imagecreate(100, 100); $blue = imagecolorallocate($image, 0, 0, 255); header('Content-type:image/jpeg'); imagejpeg($image); imagedestroy($image); ?>出力結果:
## imagecolorallocatealpha()Function
imagecolorallocatealpha() 関数は imagecolorallocate() 関数と同じ関数ですが、設定用の関数がもう 1 つあります。透明パラメータのアルファ、その構文形式は次のとおりです:
imagecolorallocatealpha(resource $image, int $red, int $green, int $blue, int $alpha)
このうち、前のパラメータは imagecolorallocate() 関数のパラメータと一致しており、$alphab は透明パラメータと値の範囲を表します。は 0 から 127 の間です。0 は完全に不透明を意味し、127 は完全に透明を意味します。
例は次のとおりです:
<?php $size=300; $image=imagecreatetruecolor($size,$size); $back=imagecolorallocate($image,0,0,0); $border=imagecolorallocate($image,255,255,255); imagefilledrectangle($image,0,0,$size-1,$size-1,$back); imagerectangle($image,0,0,$size-1,$size-1,$border); $yellow_x=100; $yellow_y=75; $red_x=100; $red_y=165; $blue_x=187; $blue_y=125; $radius=150; //用alpha值分配一些颜色 $yellow=imagecolorallocatealpha($image,200,200,0,75); $red=imagecolorallocatealpha($image,200,0,0,75); $blue=imagecolorallocatealpha($image,0,0,200,75); //画3个交迭的圆 imagefilledellipse($image,$yellow_x,$yellow_y,$radius,$radius,$yellow); imagefilledellipse($image,$red_x,$red_y,$radius,$radius,$red); imagefilledellipse($image,$blue_x,$blue_y,$radius,$radius,$blue); //不要忘记输出正确的header! header('Content-type:image/png'); //最后输出结果 imagepng($image); imagedestroy($image); ?>
出力結果:
##これより、imagecolorallocate() とimagecolorallocatealpha() これら 2 つの関数は、すでに画像上の色を定義できます。同時に、画像は色だけでなく、点、線、さまざまな形状でも構成されます。次に、これらの問題を解決する方法を見てみましょう。
点と線の描画は、PHP で画像を描画する最も基本的な操作と言えます。非常にシンプルですが、基本的ですが、柔軟なアプリケーションを使用すると、より複雑な画像を描画できます。
imagesetpixel()
imagesetpixel(resource $image, int $x, int $y, int $color)
このうち、$image は作成されたキャンバスを表し、$x と $y は ($x, $y) の座標点を表します。この座標点の色は $color です。
線分を描画するには、
imageline()
次に、ループと乱数を組み合わせた例を示します。
imageline(resource $image, int $x1, int $y1, int $x2, int $y2, int $color)
出力結果:
長方形を描画する
PHP で長方形を描画したい場合は、 imagerectangle() ## を渡す必要があります。 # または imagefilledrectangle()
実行する関数。 imagefilledrectangle() 関数は、描画後に四角形を塗りつぶしますが、imagerectangle() 関数は塗りつぶしません。構文形式は次のとおりです。
<?php $img = imagecreate(200, 100); imagecolorallocate($img, 0, 0, 0); $blue = imagecolorallocate($img, 0, 0, 255); $red = imagecolorallocate($img, 255, 0, 0); for ($i=0; $i <= 50; $i++) { $color = imagecolorallocate($img, rand(0, 255), rand(0, 255), rand(0, 255)); imagesetpixel($img, rand(0, 200), rand(0, 100), $color); imageline($img, rand(0, 200), rand(0, 100), rand(0, 200), rand(0, 100), $color); } header('Content-type:image/jpeg'); imagejpeg($img); imagedestroy($img); ?>
このうち、どちらも左上隅の座標($x1, $y1)と右下隅の座標($x2, $)を描画することを表しています。 y2). 長方形、この 2 つの違いは、imagerectangle() 関数の後の色は長方形のエッジの色を表し、imagefilledrectangle() 関数の後の色は長方形内の塗りつぶしの色を表します。
次に、例に従って imagerectangle() 関数または imagefilledrectangle() 関数を使用して四角形を描画します。例は次のとおりです: imagerectangle(resource $image, int $x1, int $y1, int $x2, int $y2, int $color) imagefilledrectangle(resource $image, int $x1, int $y1, int $x2, int $y2, int $color)出力結果:
推奨学習: 「PHP ビデオ チュートリアル 」
以上がPHP で色を定義し、点、線、四角形を描画する方法を詳細に分析しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

PHPSESSIONの障害の理由には、構成エラー、Cookieの問題、セッションの有効期限が含まれます。 1。構成エラー:正しいセッションをチェックして設定します。save_path。 2.Cookieの問題:Cookieが正しく設定されていることを確認してください。 3.セッションの有効期限:セッションを調整してください。GC_MAXLIFETIME値はセッション時間を延長します。

PHPでセッションの問題をデバッグする方法は次のとおりです。1。セッションが正しく開始されるかどうかを確認します。 2.セッションIDの配信を確認します。 3.セッションデータのストレージと読み取りを確認します。 4.サーバーの構成を確認します。セッションIDとデータを出力し、セッションファイルのコンテンツを表示するなど、セッション関連の問題を効果的に診断して解決できます。

session_start()への複数の呼び出しにより、警告メッセージと可能なデータ上書きが行われます。 1)PHPは警告を発し、セッションが開始されたことを促します。 2)セッションデータの予期しない上書きを引き起こす可能性があります。 3)session_status()を使用してセッションステータスを確認して、繰り返しの呼び出しを避けます。

PHPでのセッションライフサイクルの構成は、session.gc_maxlifetimeとsession.cookie_lifetimeを設定することで達成できます。 1)session.gc_maxlifetimeサーバー側のセッションデータのサバイバル時間を制御します。 0に設定すると、ブラウザが閉じているとCookieが期限切れになります。

データベースストレージセッションを使用することの主な利点には、持続性、スケーラビリティ、セキュリティが含まれます。 1。永続性:サーバーが再起動しても、セッションデータは変更されないままになります。 2。スケーラビリティ:分散システムに適用され、セッションデータが複数のサーバー間で同期されるようにします。 3。セキュリティ:データベースは、機密情報を保護するための暗号化されたストレージを提供します。

PHPでのカスタムセッション処理の実装は、SessionHandlerInterfaceインターフェイスを実装することで実行できます。具体的な手順には、次のものが含まれます。1)CussentsessionHandlerなどのSessionHandlerInterfaceを実装するクラスの作成。 2)セッションデータのライフサイクルとストレージ方法を定義するためのインターフェイス(オープン、クローズ、読み取り、書き込み、破壊、GCなど)の書き換え方法。 3)PHPスクリプトでカスタムセッションプロセッサを登録し、セッションを開始します。これにより、データをMySQLやRedisなどのメディアに保存して、パフォーマンス、セキュリティ、スケーラビリティを改善できます。

SessionIDは、ユーザーセッションのステータスを追跡するためにWebアプリケーションで使用されるメカニズムです。 1.ユーザーとサーバー間の複数のインタラクション中にユーザーのID情報を維持するために使用されるランダムに生成された文字列です。 2。サーバーは、ユーザーの複数のリクエストでこれらの要求を識別および関連付けるのに役立つCookieまたはURLパラメーターを介してクライアントに生成および送信します。 3.生成は通常、ランダムアルゴリズムを使用して、一意性と予測不可能性を確保します。 4.実際の開発では、Redisなどのメモリ内データベースを使用してセッションデータを保存してパフォーマンスとセキュリティを改善できます。

APIなどのステートレス環境でのセッションの管理は、JWTまたはCookieを使用して達成できます。 1。JWTは、無国籍とスケーラビリティに適していますが、ビッグデータに関してはサイズが大きいです。 2.cookiesはより伝統的で実装が簡単ですが、セキュリティを確保するために慎重に構成する必要があります。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

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

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

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

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

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

ホットトピック









