添加水印报错
Discuz! System ErrorTime: 2023-02-12 10:07:34 IP: 183.199.54.22 BackTraceID: 124a0918f96227a012b4574614c55695imagettfbbox(): Argument #1 ($size) must be of type float, string given
PHP Debug
No.FileLineCode
1admin.php58require(%s)
2source/admincp/admincp_checktools.php485image->Watermark()
3source/class/class_image.php109image->Watermark_GD()
4source/class/class_image.php488imagettfbbox()
5source/class/class_image.php488break()
如果您是用户,建议您尝试刷新页面、关闭所有浏览器窗口重新进行操作。如果无法解决,建议您完整截图本页面并保存,随后向站点管理员反馈此问题
如果您是站点管理员,建议您尝试在管理中心 更新缓存 ,或凭完整截图通过 官方社区 寻求帮助。如果您确定是程序自身Bug,您也可直接 提交Issue 给我们
有应该设置为数字的设置项未填写 根据你提供的错误信息,问题出在 `imagettfbbox()` 函数的参数类型不匹配。具体来说,`imagettfbbox()` 函数的第一个参数 `$size` 应该是一个浮点数(float),但实际传入的是一个字符串(string),导致报错。
### 问题分析:
1. **错误信息**:`imagettfbbox(): Argument #1 ($size) must be of type float, string given`
- 这意味着在调用 `imagettfbbox()` 函数时,传入的字体大小参数是一个字符串,而不是浮点数。
2. **调用栈**:
- `admin.php` 调用了 `admincp_checktools.php` 中的 `image->Watermark()` 方法。
- `image->Watermark()` 方法调用了 `image->Watermark_GD()` 方法。
- 在 `image->Watermark_GD()` 方法中,调用了 `imagettfbbox()` 函数,并传入了错误的参数类型。
### 解决方法:
1. **检查水印设置**:
- 登录 Discuz! 后台,进入“全局” -> “水印设置”。
- 检查“水印文字大小”设置,确保它是一个有效的数字(如 12、14 等),而不是字符串或其他非数字字符。
2. **修改代码**:
- 如果你有代码编辑权限,可以打开 `source/class/class_image.php` 文件,找到第 488 行附近的代码。
- 确保传递给 `imagettfbbox()` 函数的第一个参数是一个浮点数。例如:
$size = (float)$size; // 强制转换为浮点数
$bbox = imagettfbbox($size, 0, $font, $text);
3. **更新缓存**:
- 在 Discuz! 后台,进入“工具” -> “更新缓存”,点击“提交”以更新系统缓存。
4. **检查字体文件**:
- 确保 `$font` 变量指向的字体文件路径是正确的,并且字体文件存在。
5. **测试**:
- 修改后,重新尝试添加水印,查看问题是否解决。
### 如果问题仍然存在:
- 你可以尝试在 DZ插件网(https://www.dz-x.net/)搜索相关插件或解决方案,或者联系 DZ插件网的技术支持团队获取进一步帮助。
希望这些步骤能帮助你解决问题!如果还有其他疑问,欢迎继续提问。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页:
[1]