我在我的服务器上安装并“启用”了一个 GD 库,但是在 php.info 中的配置命令下它说
"--without-gd"
有没有办法通过root启用它还是我必须重新编译?
编辑:这就是它在“GD”下显示的内容
启用 GD 支持 GD 版本捆绑(2.0.34 兼容) 已启用 FreeType 支持 FreeType 与 freetype 的链接 FreeType 版本 2.2.1 启用 GIF 读取支持 启用 GIF 创建支持 已启用 JPG 支持 启用 PNG 支持 启用 WBMP 支持 启用 XBM 支持
这是我的测试脚本:
//开始php header('内容类型:图片/jpg'); $watermark = imagecreatefrompng('ninja.jpg'); $watermark_width = imagesx($watermark); $watermark_height = imagesy($watermark); $image = imagecreatetruecolor($watermark_width, $watermark_height); $image = imagecreatefromjpeg($_GET['src']); $size = getimagesize($_GET['src']); $dest_x = $size[0] - $watermark_width - 5; $dest_y = $size[1] - $watermark_height - 5; imagecopymerge($image, $watermark, $dest_x, $dest_y, 0, 0, $watermark_width, $watermark_height, 100); 图像jpeg($图像) 图像销毁($图像); 图像销毁($水印); //结束php
配置命令下显示的命令行反映了构建二进制文件的选项,而不是当前可用的模块。查看主配置标题下方以查看是否加载了gd模块。如果没有,则安装
php-gd
软件包并重新启动/重新加载 httpd。尝试开启 error_reporting(E_ALL); 并将浏览器指向图像 URL。如果您的浏览器仅显示损坏的图片消息,请评论类型标题以查看可能隐藏的任何错误消息。并修复 Ben 提到的丢失的分号。
编辑:并清理 $_GET['src'] 你可能会在那里打开一个很大的安全漏洞。
是
imagecreatefrompng('ninja.jpg')
错字吗?(即加载imagecreatefrompng
需要PNG 的JPEG)。当我将 JPEG 加载到
imagecreatefrompng
中时,它只显示您描述的图像的 URL。当我加载 PNG 水印图像时,它工作得很好。注意:我在 Windows 上,看起来你在 Linux 上。您的里程可能会有所不同™,但我认为差别不大。
我的 php 副本是
--without-gd
根据phpinfo()
- 我刚刚;extension=php_gd2.dll
在 php.ini 中取消注释并且 GD 工作正常。Ubuntu 10,Zend 服务器