Ubuntu下php使用GD库笔记
准备给博客写个验证码的,但是在使用GD库生成图片的时候,问题多多,还好现在算是解决了一些。写点下来方便朋友查阅吧,省得像我一样海搜了两天。
首先是查看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 2 3 4 5 6 7 8 9 | <?php header("Content-type:image/png"); $im= imagecreatetruecolor(300, 200); $bg_color= imagecolorallocate($im, 0, 0, 0); $text_color= imagecolorallocate($im, 23, 14, 91); imagestring($im, 1, 5, 5,"A Simple Text String", $text_color); imagepng($im); imagedestroy($im); ?> |
浏览器中打开时,开始遇到了些问题。发现提示我下载文件,下载后用gvim打开发现是乱码,不过其中可以看到PNG字样,猜想这应该就是png图像的二进制数据,不过没有被浏览器识别。用ultraedit和其他的png图像对比后,发现PNG图像头都相同,只是结尾多了四个字节。不过更名为pic.png后可以用图像查看器打开。
继续搜,最后在phpchina论坛上看到了很多人问这个问题。找到了一个貌似答案的说法。说是这个php代码是生成图片的,所以不要在php代码之前输出任何东西,包括空格。试了下,果然可以了。不过需要先关闭浏览器,再打开,不然浏览器输出的是缓存的东西。在另一个文件test.php中用img的src属性调用src=”pic.php”,这个显示正常。所以我觉得,如果需要用gd库生成图片的,最好生成图片的文件单独出来。
终于纠结完了,开始写验证码。
看完了^.^,如果觉得这篇文章对你有用或者有
问题,请留言告诉我,thank you !
文章为原创的话,转载请注明出处.不敢流泪-《Ubuntu下php使用GD库笔记》
One Comment
完整代码我博客上有。
[回复]
boluor 回复 于 五月 31st, 2009 at 01:18
恩,我看过了.session原来就那么回事…
[回复]