まず、描画コンテンツを容易にするために空白のキャンバスを作成する必要があります。 ImageCreatetrueColor()関数は、真の色のキャンバスを作成するために使用され、画像の幅と高さを設定できます。
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 写真の幅と高さを設定します</span></span><span>
</span><span><span class="hljs-variable">$width</span></span><span> = </span><span><span class="hljs-number">300</span></span><span>;
</span><span><span class="hljs-variable">$height</span></span><span> = </span><span><span class="hljs-number">100</span></span><span>;
</span><span><span class="hljs-comment">// 真の色のキャンバスを作成します</span></span><span>
</span><span><span class="hljs-variable">$image</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecreatetruecolor</span></span><span>(</span><span><span class="hljs-variable">$width</span></span><span>, </span><span><span class="hljs-variable">$height</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
このステップでは、写真の幅300ピクセル幅と100ピクセルの高さを定義します。
ImageColorAllocate()関数を使用して、画像に色を割り当てることができます。この関数によって返される色は、テキスト、背景などを描画するために使用できます。
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 色を割り当てます</span></span><span>
</span><span><span class="hljs-variable">$bgColor</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecolorallocate</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-number">255</span></span><span>, </span><span><span class="hljs-number">255</span></span><span>, </span><span><span class="hljs-number">255</span></span><span>); </span><span><span class="hljs-comment">// 白い背景</span></span><span>
</span><span><span class="hljs-variable">$textColor</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecolorallocate</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>); </span><span><span class="hljs-comment">// 黒いテキスト</span></span><span>
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
この例では、画像に白い背景色と黒いテキスト色を設定します。
次に、 ImageFill()またはImageFilltoBorder()関数を使用して、背景を埋めます。この操作により、キャンバスの背景色が統一されます。
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 白で満たされた背景</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagefill</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-variable">$bgColor</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
このステップが重要です。Imagestringup ()関数を使用して垂直テキストを描画します。 Imagestringup()は、画像の垂直方向に沿ってテキストを描画するために使用されます。そのパラメーターは次のとおりです。
$画像:描画する画像リソース
$ font :フォントサイズ
$ x :テキストの水平軸
$ y :テキストの垂直座標
$文字列:描画するテキスト
$カラー:フォントカラー
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 使用 imagestringup 垂直テキストを描きます</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagestringup</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-number">5</span></span><span>, </span><span><span class="hljs-number">50</span></span><span>, </span><span><span class="hljs-number">50</span></span><span>, </span><span><span class="hljs-string">"垂直テキスト"</span></span><span>, </span><span><span class="hljs-variable">$textColor</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
この例では、キャンバスの座標(50、50)にテキスト「垂直テキスト」を描画し、テキストが垂直に表示されます。
図面が終了したら、画像をファイルとして出力するか、ブラウザに直接表示することを選択できます。 ImagePng()やImageJpeg()などの関数を使用して、画像を異なる形式に出力するか、 Header()関数を使用して画像を直接ブラウザに出力します。
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// ブラウザへの出力</span></span><span>
</span><span><span class="hljs-title function_ invoke__">header</span></span><span>(</span><span><span class="hljs-string">'Content-Type: image/png'</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">imagepng</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>);
</span><span><span class="hljs-comment">// 画像リソースを破壊します</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagedestroy</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
このコードは、画像形式PNGを使用して、画像をブラウザに直接出力します。出力が完了したら、 Imagedestroy()を呼び出してメモリを解放します。
上記の手順を組み合わせて、完全なコードの例は次のとおりです。
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 写真の幅と高さを設定します</span></span><span>
</span><span><span class="hljs-variable">$width</span></span><span> = </span><span><span class="hljs-number">300</span></span><span>;
</span><span><span class="hljs-variable">$height</span></span><span> = </span><span><span class="hljs-number">100</span></span><span>;
</span><span><span class="hljs-comment">// 真の色のキャンバスを作成します</span></span><span>
</span><span><span class="hljs-variable">$image</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecreatetruecolor</span></span><span>(</span><span><span class="hljs-variable">$width</span></span><span>, </span><span><span class="hljs-variable">$height</span></span><span>);
</span><span><span class="hljs-comment">// 色を割り当てます</span></span><span>
</span><span><span class="hljs-variable">$bgColor</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecolorallocate</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-number">255</span></span><span>, </span><span><span class="hljs-number">255</span></span><span>, </span><span><span class="hljs-number">255</span></span><span>); </span><span><span class="hljs-comment">// 白い背景</span></span><span>
</span><span><span class="hljs-variable">$textColor</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecolorallocate</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>); </span><span><span class="hljs-comment">// 黒いテキスト</span></span><span>
</span><span><span class="hljs-comment">// 白で満たされた背景</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagefill</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-variable">$bgColor</span></span><span>);
</span><span><span class="hljs-comment">// 使用 imagestringup 垂直テキストを描きます</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagestringup</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-number">5</span></span><span>, </span><span><span class="hljs-number">50</span></span><span>, </span><span><span class="hljs-number">50</span></span><span>, </span><span><span class="hljs-string">"垂直テキスト"</span></span><span>, </span><span><span class="hljs-variable">$textColor</span></span><span>);
</span><span><span class="hljs-comment">// ブラウザに画像を出力します</span></span><span>
</span><span><span class="hljs-title function_ invoke__">header</span></span><span>(</span><span><span class="hljs-string">'Content-Type: image/png'</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">imagepng</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>);
</span><span><span class="hljs-comment">// 画像リソースを破壊します</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagedestroy</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
上記のコードを実行した後、垂直テキストを含む画像が表示されます。このプロセスでは、 ImageCreatetrueColor()を使用してCanvasを作成します。ImageColorAllocate ()は、Colors、 ImageStringup()を割り当てて垂直テキストを描画し、最終的にImagePng()を介して画像を出力します。
これらの手順を通じて、垂直テキストを含む画像を簡単に作成し、Webページ、画像処理、その他のシナリオに適用できます。この記事の解析が、PHP画像処理の基本操作、特にImagestringup()を使用して垂直テキストを描画する方法をよりよく理解するのに役立つことを願っています。