PHP描画の話(4)(了)
これまでのところ、GD を使用して描画の基本的なニーズを完了することができました。ただ、ImageString
は使用できるフォントが5つしかなくて見苦しいと感じることがあるので、以下の関数を使います。この機能により TTF フォントを使用できるようになりますが、これらのフォント用のファイルが必要です。
Header("Content-type: image/png");
$im = ImageCreate(400,250);
$col_back = ImageColorAllocate($im,136,200,152);
$col_write = ImageColorAllocate($im, 255,255,255);
$col_black = ImageColorAllocate($im,0,0,0);
ImageTTFText($im,160,15,40,220,$col_black,"C:/windows/fonts/verdana.ttf","PNG ");
// 新しい内容はこの文だけです。パラメータは次のとおりです:
// $im 言うまでもありません。この位置 160 がフォント サイズ (pt) です。 15 ひもは水平から反時計回りの傾斜角度です。
// 40,220 は水平方向と垂直方向の座標です。 ImageString との違いは、
//ImageString で指定された座標は文字列の左上隅であるのに対し、ImageTTFText で指定された座標は左下隅であることに注意してください。
// 次の $col_black は色です。
// "C:/windows/fonts/verdana.ttf" はフォント ファイルのパスで、Linux では "/.../....." です。
// 「http://....」でも構いません。ただし、私はこの方法で使用したことがないので、お勧めしません。
// 自分のマシン上にないものは結局信頼性が低く、重要なタスクを任せることができないからです。
//最後は出力する文字列です。これは特に注目すべき点です。
// ここの文字列は UTF-8 でエンコードする必要があります。 ! !
//ASCII コード 0~127 文字、ASCII コードは UTF-8 エンコーディングと等しいため、欧文文字列を出力するときに変換する必要はありません。
// 中国語を出力したい場合は、一連の変換が必要です。
// www.phpx.com は、悲しいことに GB2312 コードを UTF-8 コードに変換する関数を作成しました。
// 私の他の記事では、この関数の動作原理を具体的に分析しています。
ImagePNG($im);
ImageDestroy($im);
?>
ImageString 出力文字列が占める高さと幅を計算するのに役立つ ImageFontWidth() や ImageFontHeight() と同様に、ImageTTFBBox も役立ちます。 ImageTTFText 出力文字列の状況を計算します。戻り値は
8 個のメンバーの配列で、(この順序に注意してください) 左下、右下、右上、左上の水平座標と垂直座標です。試してみてください:
$p=ImageTTFBBox(160,0,"C:/windows/fonts/verdana.ttf","PNP");
for($i=0;$i<8;$ i+=2)
echo "(".$p[$i].",".$p[$i+1].")"."
";
?>
結果は次のようになります次のように:
(15,-1)
(306,-1)
(306,-117)
(15,-117)
なぜ負の数があるのでしょうか?私にも分かりません。これらの座標は何に対する相対的なものですか?何に対して相対的であっても、両者の相対的な位置は変わりません。したがって、これらは重要ではありません。左下の点がどこにあるべきかは、左右の横座標の差と上下の縦座標の差に基づいて計算できます。
さて、TTFフォントを使って文字列を出力する話は終わりましたが、「漢字を書くのに手間がかかる」という前の問題も解決しました。私の観点から見ると、GD には既存の画像を開いて処理し、再エクスポートするという最後の部分が残っています。
まず第一に、写真の情報を取得することが基本的です。以下の例を見てください:
$im=ImageCreateFromPNG("test.png");
// これは既存の画像を開きます。
// 非常に単純です。パラメータは画像のパス、戻り値は画像 ID です。
echo "画像の幅は ".ImageSX($im)."、高さは ".ImageSY($im).".";
// ImageSX() と ImageSY は、画像の幅と高さを取得します。それぞれ画像を作成する場合、それらはすべて 1 つのパラメータ (開かれた画像の ID) のみを必要とします。
?>
また、GDライブラリに属さない画像情報を取得する関数GetImageSizeがあります。
$p=GetImageSize("test.png");
for($i=0;$i<4;$i++) echo $p[$i]."
";
?>
結果は次のようになります:
50
100
3
width="50" height="100"
この関数は画像に関する情報を含む配列を返し、その 4 つの情報が返されることがわかります。要素は次のとおりです: 最初の 2 つは画像の幅と高さで、3 番目は画像の形式を表します: 1 = GIF、2 = JPG、3 = PNG、4 = SWF、5 = PSD、6 = BMP。最後です
要素は、画像の幅と高さを表すために HTML で使用される文字列です (とても便利です!)。たとえば、次のように使用できます:
....
$pic_name="....";
$pic_size=GetImageSize($pic_name);
?>>
....
もう一度繰り返しますが、この関数は GD ライブラリに属しません。インストールされていない場合は GD ライブラリは PHP 環境でも使用できます。 !
サムネイルは頻繁に必要となる機能です。サムネイルは、GD の「コピーとサイズ変更」機能を使用して簡単に実装できます。
// 任意のサイズの画像を幅 200 ピクセルに縮小 (拡大) したいとします。
// Header("Content-type: image/jpeg");
$pic_name="test.jpg";
$ims=ImageCreateFromJPEG($pic_name);
// 元の画像を開きます。
$owidth=ImageSX($ims);
$oheight=ImageSY($ims);
// 元の画像の幅と高さを取得します。
$nheight=Round($oheight*200.0/$owidth);
// 新しい画像の高さを計算します。
$imt=ImageCreate(200,$nheight);
// 新しい画像を作成します。
ImageCopyResize($imt,$ims,0,0,0,0,200,$nheight,$owidth,$oheight);
// 新しい画像にコピーしてサイズ変更します。
// この関数には多くのパラメータがあります。まず、コピー先の画像と元の画像の ID です。
// 次の 4 つのパラメータは、コピー先の画像と元の画像のコピー位置の座標です。
// 元の画像の 20,30 から宛先画像の 10,0 にコピーする場合
// これらの 4 つのパラメータは 10,0,20,30 になります。
// 次の 4 つと最後の 4 つのパラメータは、コピー先の画像と元の画像のコピー領域の幅と高さです。
// たとえば、100x50 の領域を元の画像からコピー先にコピーします画像を作成して 50x25 に縮小します
//これらの 4 つのパラメータは 50,25,100,50 です。
// ここで使用するパラメータは、元の画像を新しい画像に完全にコピーすることです (コピー位置はすべて 0,0)
// 拡大または縮小に関係なく、元のサイズを幅 200 ピクセルに調整します。
// 200,$nheight は新しい画像の幅と高さ、$owidth,$oheight は元の画像の幅と高さです。
// この関数を使用するときは、パラメータの各セットで次の点に注意してください。
// 宛先イメージに関連するパラメータが最初に来て、元のイメージに関連するパラメータが最後に来ます。
ImageJPEG ($imt);
ImageDestroy ($imt);ご清聴ありがとうございました!一緒に進歩していきましょう!

ホット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)

ホットトピック









ログイン画面に「組織から PIN の変更を求められています」というメッセージが表示されます。これは、個人のデバイスを制御できる組織ベースのアカウント設定を使用しているコンピューターで PIN の有効期限の制限に達した場合に発生します。ただし、個人アカウントを使用して Windows をセットアップした場合、エラー メッセージは表示されないのが理想的です。常にそうとは限りませんが。エラーが発生したほとんどのユーザーは、個人アカウントを使用して報告します。私の組織が Windows 11 で PIN を変更するように要求するのはなぜですか?アカウントが組織に関連付けられている可能性があるため、主なアプローチはこれを確認することです。ドメイン管理者に問い合わせると解決できます。さらに、ローカル ポリシー設定が間違っていたり、レジストリ キーが間違っていたりすると、エラーが発生する可能性があります。今すぐ

Windows 11 では、新鮮でエレガントなデザインが前面に押し出されており、最新のインターフェイスにより、ウィンドウの境界線などの細部をカスタマイズして変更することができます。このガイドでは、Windows オペレーティング システムで自分のスタイルを反映した環境を作成するのに役立つ手順について説明します。ウィンドウの境界線の設定を変更するにはどうすればよいですか? + を押して設定アプリを開きます。 Windows [個人用設定] に移動し、[色の設定] をクリックします。ウィンドウの境界線の色の変更設定ウィンドウ 11" width="643" height="500" > [タイトル バーとウィンドウの境界線にアクセント カラーを表示する] オプションを見つけて、その横にあるスイッチを切り替えます。 [スタート] メニューとタスク バーにアクセント カラーを表示するにはスタート メニューとタスク バーにテーマの色を表示するには、[スタート メニューとタスク バーにテーマを表示] をオンにします。

デフォルトでは、Windows 11 のタイトル バーの色は、選択したダーク/ライト テーマによって異なります。ただし、任意の色に変更できます。このガイドでは、デスクトップ エクスペリエンスを変更し、視覚的に魅力的なものにするためにカスタマイズする 3 つの方法について、段階的な手順を説明します。アクティブなウィンドウと非アクティブなウィンドウのタイトル バーの色を変更することはできますか?はい、設定アプリを使用してアクティブなウィンドウのタイトル バーの色を変更したり、レジストリ エディターを使用して非アクティブなウィンドウのタイトル バーの色を変更したりできます。これらの手順を学習するには、次のセクションに進んでください。 Windows 11でタイトルバーの色を変更するにはどうすればよいですか? 1. 設定アプリを使用して + を押して設定ウィンドウを開きます。 Windows「個人用設定」に進み、

Windows インストーラー ページに「問題が発生しました」というメッセージとともに「OOBELANGUAGE」というメッセージが表示されますか?このようなエラーが原因で Windows のインストールが停止することがあります。 OOBE とは、すぐに使えるエクスペリエンスを意味します。エラー メッセージが示すように、これは OOBE 言語の選択に関連する問題です。心配する必要はありません。OOBE 画面自体から気の利いたレジストリ編集を行うことで、この問題を解決できます。クイックフィックス – 1. OOBE アプリの下部にある [再試行] ボタンをクリックします。これにより、問題が発生することなくプロセスが続行されます。 2. 電源ボタンを使用してシステムを強制的にシャットダウンします。システムの再起動後、OOBE が続行されます。 3. システムをインターネットから切断します。 OOBE のすべての側面をオフライン モードで完了する

タスクバーのサムネイルは楽しい場合もありますが、気が散ったり煩わしい場合もあります。この領域にマウスを移動する頻度を考えると、重要なウィンドウを誤って閉じてしまったことが何度かある可能性があります。もう 1 つの欠点は、より多くのシステム リソースを使用することです。そのため、リソース効率を高める方法を探している場合は、それを無効にする方法を説明します。ただし、ハードウェアの仕様が対応可能で、プレビューが気に入った場合は、有効にすることができます。 Windows 11でタスクバーのサムネイルプレビューを有効にする方法は? 1. 設定アプリを使用してキーをタップし、[設定] をクリックします。 Windows では、「システム」をクリックし、「バージョン情報」を選択します。 「システムの詳細設定」をクリックします。 [詳細設定] タブに移動し、[パフォーマンス] の下の [設定] を選択します。 「視覚効果」を選択します

Windows 11 のディスプレイ スケーリングに関しては、好みが人それぞれ異なります。大きなアイコンを好む人もいれば、小さなアイコンを好む人もいます。ただし、適切なスケーリングが重要であることには誰もが同意します。フォントのスケーリングが不十分であったり、画像が過度にスケーリングされたりすると、作業中の生産性が大幅に低下する可能性があるため、システムの機能を最大限に活用するためにカスタマイズする方法を知る必要があります。カスタム ズームの利点: これは、画面上のテキストを読むのが難しい人にとって便利な機能です。一度に画面上でより多くの情報を確認できるようになります。特定のモニターおよびアプリケーションにのみ適用するカスタム拡張プロファイルを作成できます。ローエンド ハードウェアのパフォーマンスの向上に役立ちます。画面上の内容をより詳細に制御できるようになります。 Windows 11の使用方法

画面の明るさは、最新のコンピューティング デバイスを使用する上で不可欠な部分であり、特に長時間画面を見る場合には重要です。目の疲れを軽減し、可読性を向上させ、コンテンツを簡単かつ効率的に表示するのに役立ちます。ただし、設定によっては、特に新しい UI が変更された Windows 11 では、明るさの管理が難しい場合があります。明るさの調整に問題がある場合は、Windows 11 で明るさを管理するすべての方法を次に示します。 Windows 11で明るさを変更する方法【10の方法を解説】 シングルモニターユーザーは、次の方法でWindows 11の明るさを調整できます。これには、ラップトップだけでなく、単一のモニターを使用するデスクトップ システムも含まれます。はじめましょう。方法 1: アクション センターを使用する アクション センターにアクセスできる

Windows のライセンス認証プロセスが突然切り替わり、このエラー コード 0xc004f069 を含むエラー メッセージが表示されることがあります。ライセンス認証プロセスはオンラインですが、Windows Server を実行している一部の古いシステムではこの問題が発生する可能性があります。これらの初期チェックを実行し、システムのアクティブ化に役に立たない場合は、問題を解決するための主要な解決策に進んでください。回避策 – エラー メッセージとアクティベーション ウィンドウを閉じます。次に、コンピュータを再起動します。 Windows ライセンス認証プロセスを最初から再試行します。解決策 1 – ターミナルからアクティブ化する cmd ターミナルから Windows Server Edition システムをアクティブ化します。ステージ – 1 Windows Server のバージョンを確認する 使用している W の種類を確認する必要があります
