小程序内容安全检测图片过大的解决方法

这篇具有很好参考价值的文章主要介绍了小程序内容安全检测图片过大的解决方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目前微信官方对小程序的内容安全审核越发严格,几乎只要涉及到输入框或者图片选择按钮都需要接入内容安全审核,不然都没办法通过审核。文本检测很简单,只要将文字直接提交到云端进行检测就可以了,但是在接入图片的时候总会有一些问题。

今天主要说一下图片审核中由于图片过大导致审核失败的问题,官方的规定要检测的图片文件,格式支持PNG、JPEG、JPG、GIF,图片尺寸不超过 750px x 1334px,图片大小限制为1M,但是随着现在随便一张图可能都有好几M,从而导致无法审核。

主要办法就是将需要审核的图片进行压缩,用压缩后图片去提交审核,审核通过后再去对原图进行处理。可以在后端压缩图片也可以在小程序端直接压缩,这里推荐直接在前端压缩后再提交给后端,在前端压缩一般都是通过canvas来完成,这里写一个利用wx.createOffscreenCanvasAPI来进行图片压缩。

/**
 * 压缩图片
 */
compressImage: function(imageUrl) {
    return new Promise((resolve, reject) => {
      wx.getImageInfo({
        src: imageUrl,
        success: res => {
          const height = res.height * 300 / res.width;
          const offscreenCanvas = wx.createOffscreenCanvas({
            type: '2d',
            width:300,
            height
          })
          const context = offscreenCanvas.getContext('2d')
          const image = offscreenCanvas.createImage()
          image.src = imageUrl;
          image.onload = () => {
            context.clearRect(0, 0, 300, height)
            context.drawImage(image, 0, 0, 300, height)
            const imageBase64 = offscreenCanvas.toDataURL("image/jpeg",0.7)
            const base64 = imageBase64.replace(/^data:image\/\w+;base64,/, "")
            resolve(base64)
          }
        }
      })
    })
  }

上述代码中,我们直接使用promise封装了这个方法,这样就可以在任何地方直接异步调用这个压缩方法,我们只需要提供一个图片地址(这个地址可以是网络地址也可以是本地临时地址),就会返回一张宽度为300px的等比图片的base64码,我们可以直接将它提交给后端进行审核。当然这里我是固定了宽度,如果你想要将图片压缩的更小(不过不建议太小,不然图片太过模糊可能会导致审核准确性出问题),或者稍微大一点可以将宽度作为形参传入,代码如下:

/**
 * 压缩图片
 */
compressImage: function(imageUrl,width) {
    return new Promise((resolve, reject) => {
      wx.getImageInfo({
        src: imageUrl,
        success: res => {
          const height = res.height * width / res.width;
          const offscreenCanvas = wx.createOffscreenCanvas({
            type: '2d',
            width,
            height
          })
          const context = offscreenCanvas.getContext('2d')
          const image = offscreenCanvas.createImage()
          image.src = imageUrl;
          image.onload = () => {
            context.clearRect(0, 0, width, height)
            context.drawImage(image, 0, 0, width, height)
            const imageBase64 = offscreenCanvas.toDataURL("image/jpeg",0.7)
            const base64 = imageBase64.replace(/^data:image\/\w+;base64,/, "")
            resolve(base64)
          }
        }
      })
    })
  }

这里我们需要提供两个参数尽可以使用这个压缩图片的方法了,如下:

let imageBase64 = await this.compressImage(imageUrl,width)

其中imageUrl为图片地址,width为想要压缩的宽度。这样得到的imageBase64就是压缩后图片的base64编码了。文章来源地址https://www.toymoban.com/news/detail-778508.html

到了这里,关于小程序内容安全检测图片过大的解决方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【信息与内容安全】实验二:虚假人脸检测实验

    摘要: 在此次实验中,先尝试了自己手动搭建了一个 CNN 进行虚假人脸的分类实验,但发现有训练速度慢准确率低等缺点。所以尝试使用已有的模型(resnet-18)和预训练的参数进行迁移学习,包括尝试了直接把卷积层借用为固定特征提取器和 Fine-tuning 的方法,大大提高了训练

    2024年02月04日
    浏览(50)
  • 毕业设计:基于聚类算法的网站内容安全检测系统

    目录 前言 项目背景 设计思路 2.1 支持向量机 2.2 聚类算法 模型训练 更多帮助     📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级

    2024年02月21日
    浏览(32)
  • 小程序安全检测(一)

    1、 明文或弱加密传输用户名、密码和验证码等敏感信息 整改优先级 :高 问题描述 : 用户登录过程中,在与服务器端交互时明文或弱加密传输用户名、密码或者验证码等,可导致用户敏感信息泄露。 检测方法 : 利用burpsuite对被测应用进行监听,点击登录或修改密码,请求

    2024年02月09日
    浏览(34)
  • 微信小程序:uniapp解决上传小程序体积过大的问题

    在昨天的工作中遇到了一个微信小程序上传代码过大的情况,在这里总结一下具体的解决步骤,首先介绍一下,技术栈是使用uniapp框架+HBuilderX的开发环境。 错误提示 真机调试,提示包提交过大,不能正常生成二维码,后续上传代码更是不可能了,减少包中的体积顺着这条思

    2024年02月03日
    浏览(34)
  • 【极市任务——安全帽检测|yolov5】一文带你快速通过任务|使用yolov5[6.0]|和极市说明文档不一样的yolov5内容|python

    目录   时间:2022.6.23 极市的新人任务——安全帽识别通过简单的赛题带我们更好的熟悉了极市比赛、项目的打榜流程。 如果你也是深度学习爱好者,也不妨短暂停留看看!!! 1.开发环境选择 2.配置yolov5环境 3.编写代码 4.模型训练 5.模型测试 6.领取奖励 没有谁的成功是一步

    2024年02月03日
    浏览(46)
  • 小程序:uniapp解决主包体积过大的问题

    已经分包但还是体积过大 运行时勾选“运行时是否压缩代码”进行压缩 在 manifest.json 配置(开启分包优化) 在 app.json 配置(设置组件按需注入)

    2024年02月07日
    浏览(37)
  • 微信小程序中使用字体图标,解决字体图标包过大的问题

    在微信小程序开发中,我们经常使用字体图标来美化界面和展示各种功能。然而,当我们的小程序主包大小超过2M时,可能会遇到一个问题:字体图标的文件很大,导致整个包的大小超出了限制。为了解决这个问题,我们可以使用wx.loadFontFace方法来远程加载字体图标。 步骤一

    2024年02月12日
    浏览(58)
  • Windows基线安全检测-安全配置检测

    Windows在生产环境中是使用最多的一个系统,大部分为客户端,少部分为服务端; 然而其实很多用户对windows系统不是很了解,安全配置更是如此; 因此我们安全人员要定期对员工的主机做必要的安全检测,其中基线的定期检测就是方式之一; 以下则是我亲自编写测试上线使

    2024年04月16日
    浏览(35)
  • 优化Java内存过大的情况,通过启动参数控制java运行中程序的内存占用大小

    在生产服务运行中,如果在小服务器上Java如果不做任何处理,一个Java程序最少默认能达到200m左右。在1gb的服务器上如果多挂几个Java程序,会经常出现宕机的情况。所以要进行优化 -Xms 最小内存数 m为单位,参数后面不加空格,不加等于号直接写 –Xmx1m 最大内存数 m为单位,

    2024年02月09日
    浏览(48)
  • uni-app 微信小程序vendor.js 过大的处理方式和分包优化

    小程序工具提示vendor.js过大,已经跳过es6向es5转换。这个转换问题本身不用理会,因为vendor.js已经是es5的了。 关于体积控制,参考如下: 使用运行时代码压缩 HBuilderX创建的项目勾选运行–运行到小程序模拟器–运行时是否压缩代码 cli创建的项目可以在 package.json 中添加参数

    2024年02月11日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包