« 84. 如何設計一個簡單的畫線 CGI 程式? | (回到Blog入口) | 86. PHP 的 Regular Expression 函數群整理 »

85. 如何加上加上選擇顏色的功能?

jollen 發表於 October 27, 2006 10:08 PM

我們還可以配合 radio box 輸入欄位讓使用者可以選擇不同的顏色。首先必須重新設計我們的表單如下:

<form method="POST" action="draw2.php"> <p>X1:<input type="text" name="x1" size="3"><br> Y1:<input type="text" name="y1" size="3"></p> <p>X2:<input type="text" name="x2" size="3"><br> Y2:<input type="text" name="y2" size="3"></p> <p>顏色:<input type="radio" value="0,0,0" name="color" checked>黑 <input type="radio" value="255,0,0" name="color"><font color="#FF0000">紅</font> <input type="radio" value="0,120,0" name="color"><font color="#008000">綠</font> <input type="radio" value="0,0,120" name="color"><font color="#000080">紫</font> <input type="radio" value="0,0,255" name="color"><font color="#0000FF">藍</font></p> <p><input type="submit" value="畫線" name="B1"></p> </form>

php
圖: 可選擇顏色的新表單

底下修改後的範例程式 draw2.php,在這個範例裡,我們改用 PNG 格式來輸出圖檔。

<?php
// 1.建立新影像 $im = imagecreate(500, 400);
// 2. 定義白色顏色的 RGB (背景顏色) $white = imagecolorallocate($im, 255, 255, 255);
// 3. 定義使用者選擇的顏色 $rgb = split(",", $color); $usercol = imagecolorallocate($im, $rgb[0], $rgb[1], $rgb[2]);
// 4. 開始畫線 imageline($im, $x1, $y1, $x2, $y2, $usercol);
// 5. 做成 png 圖檔並輸出 imagepng($im, "draw2.png");
// 6. 完成後將圖檔毀滅 imagedestroy($im);
?> <html> 已輸出至 <a href="draw2.png">draw2.png</a> </html>

在線段的顏色部份,只要把原來定義黑色的程式碼改用由表單傳入的顏色參數來定義線段顏色即可:

// 3. 定義使用者選擇的顏色 $rgb = split(",", $color); $usercol = imagecolorallocate($im, $rgb[0], $rgb[1], $rgb[2]);

這裡我們也用到了簡單的陣列設計方法。接下來畫線時要記得將顏色的變數改成 這裡的 $usercol:

// 4. 開始畫線 imageline($im, $x1, $y1, $x2, $y2, $usercol);

--jollen

版權聲明

請參閱頁面底部的 CC 授權條款。此外,Jollen's PHP 專欄禁止引用、修改與轉貼,如果您想與朋友分享的話,我們只允許網站連結(hyperlink)的形式。

發表一個評論

(如果你此前從未在此 Blog 上發表過評論,則你的評論必須在 Blog 主人驗證後才能顯示,請你耐心等候。)

| Top | Jollen's Forum |
Jollen's PHP 專欄採用 Attribution-NonCommercial-NoDerivs 2.5 授權條款
Copyright(c) 2001-2007,2010 www.jollen.org