網站製作學習誌

記錄學習製作網站的一切

為 imageCreate 產生出來的圖設定連結

這也是為 Tim 的網友回答的一篇:用 imageCreate 產生出來的圖怎麼設連結?

解這個問題之前,要先建立三個觀念:

  1. 利用 imageCreateimageCreateFromGif 建立的不是圖片,而是一個 PHP 的 Resource 而已,輸出圖片要用 imageGif 或同類型的圖片輸出函式。
  2. imageGif 輸出的格式是圖片 (Binary) ,而不是 HTML (Text) 。
  3. <img src=”xxx” /> 中的 src 可以指向一個 php 程式 (事實上可以是任何輸出圖片格式的網址) 。

所以假設我們現在有一個 image.php ,內容為:

1
2
3
4
5
6
7
8
9
10
<font color="#000000"><font color="#007700"><?</font><font color="#0000bb">php
header</font><font color="#007700">(</font><font color="#dd0000">"Content-type: image/gif"</font><font color="#007700">);
</font><font color="#0000bb">$im </font><font color="#007700">= @</font><font color="#0000bb">imageCreate</font><font color="#007700">(</font><font color="#0000bb">100</font><font color="#007700">, </font><font color="#0000bb">50</font><font color="#007700">)
   or die(</font><font color="#dd0000">"Cannot Initialize new GD image stream"</font><font color="#007700">);
</font><font color="#0000bb">$background_color </font><font color="#007700">= </font><font color="#0000bb">imageColorAllocate</font><font color="#007700">(</font><font color="#0000bb">$im</font><font color="#007700">, </font><font color="#0000bb">255</font><font color="#007700">, </font><font color="#0000bb">255</font><font color="#007700">, </font><font color="#0000bb">255</font><font color="#007700">);
</font><font color="#0000bb">$text_color </font><font color="#007700">= </font><font color="#0000bb">imageColorAllocate</font><font color="#007700">(</font><font color="#0000bb">$im</font><font color="#007700">, </font><font color="#0000bb">233</font><font color="#007700">, </font><font color="#0000bb">14</font><font color="#007700">, </font><font color="#0000bb">91</font><font color="#007700">);
</font><font color="#0000bb">imageString</font><font color="#007700">(</font><font color="#0000bb">$im</font><font color="#007700">, </font><font color="#0000bb">2</font><font color="#007700">, </font><font color="#0000bb">5</font><font color="#007700">, </font><font color="#0000bb">5</font><font color="#007700">,  </font><font color="#dd0000">"TEST"</font><font color="#007700">, </font><font color="#0000bb">$text_color</font><font color="#007700">);
</font><font color="#0000bb">imageGif</font><font color="#007700">(</font><font color="#0000bb">$im</font><font color="#007700">);
</font><font color="#0000bb">imageDestroy</font><font color="#007700">(</font><font color="#0000bb">$im</font><font color="#007700">);
</font><font color="#0000bb">?></font></font>

它會產生一張圖,但是不 HTML 。所以我們要另外建立一個 HTML 檔案來連結它:

1
2
3
4
5
6
7
8
9
<font color="#000000"><font color="#007700"><</font><font color="#0000bb">html</font><font color="#007700">>
<</font><font color="#0000bb">head</font><font color="#007700">>
<</font><font color="#0000bb">title</font><font color="#007700">></font><font color="#0000bb">圖片連結測試</font><font color="#007700"></</font><font color="#0000bb">title</font><font color="#007700">>
</</font><font color="#0000bb">head</font><font color="#007700">>
<</font><font color="#0000bb">body</font><font color="#007700">>
<</font><font color="#0000bb">h1</font><font color="#007700">></font><font color="#0000bb">圖片連結測試</font><font color="#007700"></</font><font color="#0000bb">h1</font><font color="#007700">>
<</font><font color="#0000bb">a href</font><font color="#007700">=</font><font color="#dd0000">"javascript:alert('這是連結');"</font><font color="#007700">><</font><font color="#0000bb">img src</font><font color="#007700">=</font><font color="#dd0000">"image.php" </font><font color="#007700">/></</font><font color="#0000bb">a</font><font color="#007700">>
</</font><font color="#0000bb">body</font><font color="#007700">>
</</font><font color="#0000bb">html</font><font color="#007700">></font></font>

Comments