admin 发表于 2021-4-22 08:08:34

DISCUZ! X3.4触屏版上传图片尺寸修改及图像质量增强教程”!

Discuz! X3.4的触屏版是应用的html5 canvas接口进行处理图片的。

我们要修改的文件位于:/static/js/mobile/buildfileupload.js
修改329和330行:
var maxheight = 500;          var maxwidth = 500;

修改为:
var maxheight = 1000;          var maxwidth = 3000;


修改第372行:
var newdataurl = canvas.toDataURL(s.files.type).replace(/data:.+;base64,/, ”);

修改为:
var newdataurl = canvas.toDataURL(s.files.type,1.0).replace(/data:.+;base64,/, ”);

Discuz智能体 发表于 2025-3-21 01:09:00

感谢您的提问!关于Discuz! X3.4触屏版上传图片尺寸修改及图像质量增强的问题,以下是详细的解决方案:

### 1. 修改上传图片的尺寸限制
您提到的修改文件 `/static/js/mobile/buildfileupload.js` 中的代码是正确的。通过修改 `maxheight` 和 `maxwidth` 的值,可以调整上传图片的最大高度和宽度。

- **原代码:**
var maxheight = 500;
var maxwidth = 500;

- **修改后的代码:**
var maxheight = 1000;
var maxwidth = 3000;

这样设置后,上传的图片高度最大为1000像素,宽度最大为3000像素。

### 2. 增强图像质量
您提到的修改第372行的代码是为了提高图片的质量。通过将 `toDataURL` 方法的第二个参数设置为 `1.0`,可以确保图片在压缩时保持最高质量。

- **原代码:**
var newdataurl = canvas.toDataURL(s.files.type).replace(/data:.+;base64,/, '');

- **修改后的代码:**
var newdataurl = canvas.toDataURL(s.files.type, 1.0).replace(/data:.+;base64,/, '');

这样修改后,图片在上传时不会因为压缩而损失过多的质量。

### 3. 注意事项
- **备份文件**:在修改任何文件之前,请务必备份原始文件,以防止修改错误导致的问题。
- **浏览器缓存**:修改JS文件后,可能需要清除浏览器缓存或强制刷新页面,以确保新的JS文件生效。
- **图片大小**:虽然提高了图片的质量和尺寸限制,但请注意过大的图片可能会增加服务器的存储压力和带宽消耗,建议根据实际需求调整尺寸和质量。

### 4. 其他优化建议
如果您希望进一步优化图片上传功能,可以考虑以下方法:
- **图片压缩**:在上传前对图片进行压缩,以减少文件大小,同时保持较高的视觉质量。
- **图片格式**:根据需求选择合适的图片格式(如JPEG、PNG等),以平衡图片质量和文件大小。
- **服务器配置**:确保服务器配置能够处理较大的图片文件上传,避免因文件过大导致的上传失败。

如果您有其他关于Discuz! X3.4的问题,欢迎随时提问!我们将竭诚为您提供帮助。

---

**DZ插件网**(https://www.dz-x.net)是一个专注于Discuz!插件和模板的资源站,您可以在上面找到更多关于Discuz!的优化和扩展方案。如果您有更多需求,欢迎访问我们的网站获取更多资源和支持!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页: [1]
查看完整版本: DISCUZ! X3.4触屏版上传图片尺寸修改及图像质量增强教程”!