當前位置: 首頁> 最新文章列表> 怎樣結合imagestringup和imagecreatetruecolor創建豎直文本圖片?完整步驟解析

怎樣結合imagestringup和imagecreatetruecolor創建豎直文本圖片?完整步驟解析

gitbox 2025-07-03

1.初始化圖像畫布

首先,我們需要創建一個空白的畫布,方便在其上繪製內容。 imagecreatetruecolor()函數是用來創建一個真彩色的畫布,它允許我們設置圖像的寬度和高度。

 <span><span><span class="hljs-meta">&lt;?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">?&gt;</span></span><span>
</span></span>

在這個步驟中,我們為圖片定義了一個寬300 像素,高100 像素的畫布。

2.分配顏色

我們可以使用imagecolorallocate()函數為圖像分配顏色。此函數返回的顏色可以用來繪製文本、背景等。

 <span><span><span class="hljs-meta">&lt;?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">?&gt;</span></span><span>
</span></span>

在這個示例中,我們為圖像設置了一個白色的背景顏色和黑色的文本顏色。

3.填充背景

接下來,我們使用imagefill()imagefilltoborder()函數填充背景。這一操作可以確保畫布有一個統一的背景色。

 <span><span><span class="hljs-meta">&lt;?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">?&gt;</span></span><span>
</span></span>

4.繪製豎直文本

這一步是關鍵,我們利用imagestringup()函數來繪製豎直的文本。 imagestringup()用於將文本沿著圖像的豎直方向繪製。它的參數如下:

  • $image : 要繪製的圖像資源

  • $font : 字體大小

  • $x : 文本的橫坐標

  • $y : 文本的縱坐標

  • $string : 要繪製的文本

  • $color : 字體顏色

<span><span><span class="hljs-meta">&lt;?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">?&gt;</span></span><span>
</span></span>

在這個例子中,我們將文本"豎直文本"繪製到畫布的坐標(50, 50)處,並且文本是豎直顯示的。

5.輸出圖像

完成繪製後,我們可以選擇將圖像輸出為文件或直接顯示在瀏覽器中。使用imagepng()imagejpeg()等函數可以將圖像輸出為不同格式,或者使用header()函數將圖像直接輸出到瀏覽器。

 <span><span><span class="hljs-meta">&lt;?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">?&gt;</span></span><span>
</span></span>

這段代碼會將圖像直接輸出到瀏覽器,圖像格式為PNG。在輸出完畢後,調用imagedestroy()釋放內存。

6.完整代碼示例

將以上步驟組合起來,完整的代碼示例如下:

 <span><span><span class="hljs-meta">&lt;?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">?&gt;</span></span><span>
</span></span>

7.效果與總結

執行上述代碼後,我們將會看到一個包含豎直文本的圖片。在此過程中,我們使用了imagecreatetruecolor()創建畫布, imagecolorallocate()分配顏色, imagestringup()繪製豎直文本,最後通過imagepng()輸出圖像。

通過這幾步,你可以輕鬆地創建包含豎直文本的圖片,並將其應用於網頁、圖像處理等場景。希望本文的解析能夠幫助你更好地理解PHP 圖像處理的基本操作,特別是如何使用imagestringup()繪製豎直文本。