我的服务器上安装并启用了 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 标头('内容类型:image/jpg'); $水印 = imagecreatefrompng('ninja.jpg'); $水印宽度 = 图像x($水印); $watermark_height = 图像高度 ($watermark); $图像 = 图像创建真颜色($水印宽度,$水印高度); $图像 = imagecreatefromjpeg($_GET['src']); $size = 获取图像大小($_GET['src']); $dest_x = $size[0]-$watermark_width-5; $dest_y = $size[1] - $watermark_height - 5; 图像复制合并($图像,$水印,$目标x,$目标y,0,0,$水印宽度,$水印高度,100); 图像jpeg($图像) 图像销毁($图像); 图像销毁($水印); //结束 php
答案1
命令行如下所示配置命令反映了二进制文件构建时的选项,不是目前有哪些模块可用。查看下面的主要配置标头查看广东模块已加载。如果没有,则安装php-gd
包并重新启动/重新加载 httpd。
答案2
尝试打开 error_reporting(E_ALL); 并将浏览器指向图像 URL。注释掉类型标头以查看可能隐藏的任何错误消息(如果您的浏览器仅显示损坏的图片消息)。并修复 Ben 提到的缺少分号的问题。
编辑:并清理 $_GET['src'],您可能会在那里打开一个很大的安全漏洞。
答案3
是不是imagecreatefrompng('ninja.jpg')
打字错误?(例如,加载 JPEG 到imagecreatefrompng
需要 PNG 的位置)。
当我将 JPEG 加载到 时imagecreatefrompng
,它仅显示图像的 URL,就像您描述的那样。当我加载 PNG 水印图像时,它工作正常。
注意:我使用的是 Windows,而您使用的是 Linux。您的里程可能会有所不同™,但我认为差别不大。
答案4
我的 php 副本附带--without-gd
-phpinfo()
我刚刚;extension=php_gd2.dll
在 php.ini 中取消注释,GD 工作正常。
Ubuntu 10,Zend 服务器