首先是查看GD庫有沒有被正確的安裝和加載.通過gd_info()可以看,或者phpinfo。在phpinfo中可以看到gd一欄,然后版本如果是 bundled (2.0.34 compatible) 的話,是從php4.3之后開始綁定的。如果沒有的話,可以用命令安裝一個:
sudo apt-get install php5-gd.或者為了安裝完整版本的,在源列表中添加兩行:
deb http://packages.dotdeb.org stable all
deb-src http://packages.dotdeb.org stable all
然后升級下:sudo apt-get update. 再安裝php5-gd.
網上有說,安裝完成后php.ini會更新,但是我的並沒有。搜到gd.so在/usr/lib/php5/20060613+lfs /下,php.ini在/etc/php5/apach2下.於是手動修改php.ini。在其中修改extension_dir=”/usr/lib /php5/20060613+lfs/”,再添加一行extension=gd.so.之后重啟apach2: sudo /etc/init.d/apach2 restart。
這些完成后可以寫個測試的小程序。我使用的是php手冊上的例子.文件名為pic.php。
1 |
<?php |
瀏覽器中打開時,開始遇到了些問題。發現提示我下載文件,下載后用gvim打開發現是亂碼,不過其中可以看到PNG字樣,猜想這應該就是png圖像的二進 制數據,不過沒有被瀏覽器識別。用ultraedit和其他的png圖像對比后,發現PNG圖像頭都相同,只是結尾多了四個字節。不過更名為 pic.png后可以用圖像查看器打開。
繼續搜,最后在phpchina論壇上看到了很多人問這個問題。找到了一個貌似答案的說法。說是這個php代碼是生成圖片的,所以不要在php代碼之前輸 出任何東西,包括空格。試了下,果然可以了。不過需要先關閉瀏覽器,再打開,不然瀏覽器輸出的是緩存的東西。在另一個文件test.php中用img的 src屬性調用src=”pic.php”,這個顯示正常。所以我覺得,如果需要用gd庫生成圖片的,最好生成圖片的文件單獨出來。
終於糾結完了,開始寫驗證碼。