UEditor上传图片被压缩得模糊的解决方法

UEditor功能很强大,但是有个很不友好的功能:会在使用UEditor上传图片时,如果你的原始图片尺寸过大,就会先自动对图片大小进行压缩,然后将压缩的文件给servlet。也就是说,使用UEditor 上传图片后会导致图片大小发生改变并使图片变得模糊,而这是在用户毫不知情的情况下进行的操作,非常讨厌。


如果不想让上传的精美照片被UEditor 压缩得面目全非,可以通过以下方法禁止UEditor自动压缩图片:

打开该目录的文件:UEditor\php\ue.config.php,找到如下代码:

$CONFIG = array(
    /* 上传图片配置项 */
    "imageActionName" => "uploadimage", /* 执行上传图片的action名称 */
    "imageFieldName" => "upfile", /* 提交的图片表单名称 */
    "imageMaxSize" => $max_size, /* 上传大小限制,单位B */
    "imageAllowFiles" => $upload_allow, /* 上传图片格式显示 */
    "imageCompressEnable" => true, /* 是否压缩图片,默认是true */
    "imageCompressBorder" => 2940, /* 图片压缩最长边限制 */
    "imageInsertAlign" => "none", /* 插入的图片浮动方式 */
    "imageUrlPrefix" => "", /* 图片访问路径前缀 */

将上述代码中imageCompressEnable 后的“true”参数改为“false”即可。当然,你也可以调整imageCompressBorder 后的参数,只有边长大于该值的照片才会被UEditor 压缩。



如果你觉得压缩图片的功能还是有点用,将下面这个目录中的文件 “UEditor\dialogs\image\image.js”中 "quality" 值调整为100 (代码瑞安),这样会对图片质量有一些改善,但还是差强人意,所以还是建议禁止UEditor 自动压缩图片。

compress: editor.getOpt('imageCompressEnable') ? {
                    width: imageCompressBorder,
                    height: imageCompressBorder,
                    // 图片质量,只有type为`image/jpeg`的时候才有效。
                    quality: 90,
                    // 是否允许放大,如果想要生成小图的时候不失真,此选项应该设置为false.
                    allowMagnify: false,
                    // 是否允许裁剪。
                    crop: false,
                    // 是否保留头部meta信息。



原载于  搜索引擎大全
原文地址  http://www.eryi.org/blog/post/ueditor-compress-picture.html
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。
使用UEditor上传图片可以参考以下步骤: 1. 在页面中引入UEditor的JavaScript和CSS文件,并初始化UEditor编辑器。 ``` <!-- 引入UEditor --> <script type="text/javascript" src="ueditor.config.js"></script> <script type="text/javascript" src="ueditor.all.js"></script> <link rel="stylesheet" type="text/css" href="ueditor.css"> <!-- 初始化编辑器 --> <script type="text/javascript"> var editor = UE.getEditor('editor'); </script> ``` 2. 在UEditor配置文件中设置图片上传相关参数。以下是一个示例配置: ``` // ueditor.config.js var URL_UPLOAD_IMAGE = '/upload/image'; // 图片上传接口地址 // 配置UEditor UE.Editor.prototype._bkGetActionUrl = UE.Editor.prototype.getActionUrl; UE.Editor.prototype.getActionUrl = function(action) { if (action == 'uploadimage') { return URL_UPLOAD_IMAGE; } else { return this._bkGetActionUrl.call(this, action); } }; ``` 3. 编写服务器端代码,接收并处理上传的图片。以下是一个示例Python Flask代码: ``` from flask import Flask, request, jsonify from werkzeug.utils import secure_filename import os app = Flask(__name__) app.config['UPLOAD_FOLDER'] = 'uploads' # 上传文件保存目录 app.config['ALLOWED_EXTENSIONS'] = {'png', 'jpg', 'jpeg', 'gif'} # 允许上传的文件类型 # 检查文件扩展名是否允许上传 def allowed_file(filename): return '.' in filename and \ filename.rsplit('.', 1)[1].lower() in app.config['ALLOWED_EXTENSIONS'] # 处理图片上传请求 @app.route('/upload/image', methods=['POST']) def upload_image(): file = request.files['upfile'] if file and allowed_file(file.filename): filename = secure_filename(file.filename) file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename)) return jsonify({'url': 'uploads/' + filename}) else: return jsonify({'error': 'Invalid file type'}) if __name__ == '__main__': app.run(debug=True) ``` 4. 在UEditor中添加图片上传按钮,点击后弹出选择文件对话框。以下是一个示例HTML代码: ``` <!-- 添加图片上传按钮 --> <div id="editor"> <p>在这里输入内容</p> <p><span onclick="editor.execCommand('insertimage')">上传图片</span></p> </div> ``` 以上就是使用UEditor上传图片的基本流程。需要注意的是,上述代码仅作为示例,具体实现可能需要根据项目需求进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值