微信小程序上传图片压缩方案

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

小程序上传图片需要进行压缩,可以使用wx.getFileSystemManager()方法将图片转换成base64格式,再使用canvas将图片压缩成指定大小。


//选择图片

wx.chooseImage({

    count:  1,  //最多选择1张图片

    success:  function(res)  {

        var  tempFilePaths  =  res.tempFilePaths;  //获取图片本地路径

        //将图片转换成base64格式

        wx.getFileSystemManager().readFile({

            filePath:  tempFilePaths[0],

            encoding:  'base64',

            success:  function(data)  {

                //创建canvas进行压缩

                var  imgData  =  'data:image/png;base64,'  +  data.data;

                var  image  =  new  Image();

                image.src  =  imgData;

                image.onload  =  function()  {

                    //压缩图片,并绘制到canvas上

                    var  canvas  =  document.createElement('canvas');

                    var  context  =  canvas.getContext('2d');

                    var  originWidth  =  this.width;

                    var  originHeight  =  this.height;

                    var  maxWidth  =  1280,  //设置最大的宽度

                            maxHeight  =  1280,  //设置最大的高度

                            targetWidth  =  originWidth,

                            targetHeight  =  originHeight;

                    if  (originWidth  >  maxWidth  ||  originHeight  >  maxHeight)  {

                        if  (originWidth  /  originHeight  >  maxWidth  /  maxHeight)  {

                            targetWidth  =  maxWidth;

                            targetHeight  =  Math.round(maxWidth  *  (originHeight  /  originWidth));

                        }  else  {

                            targetHeight  =  maxHeight;

                            targetWidth  =  Math.round(maxHeight  *  (originWidth  /  originHeight));

                        }

                    }

                    canvas.width  =  targetWidth;

                    canvas.height  =  targetHeight;

                    context.clearRect(0,  0,  targetWidth,  targetHeight);

                    context.drawImage(image,  0,  0,  targetWidth,  targetHeight);

                    //将canvas转换成图片base64格式

                    var  imageData  =  canvas.toDataURL('image/png');

                    var  base64Data  =  imageData.replace(/^data:image\/\w+;base64,/,  "");

                    //调用接口上传图片

                    wx.uploadFile({

                        url:  '接口地址',

                        filePath:  tempFilePaths[0],

                        name:  'file',

                        formData:  {

                            'content':  base64Data

                        },

                        success:  function(res)  {

                            //上传成功

                        },

                        fail:  function()  {

                            //上传失败

                        }

                    })

                }

            }

        })

    }

})

首先使用wx.chooseImage()方法选择了一张图片,然后使用wx.getFileSystemManager()方法将图片转换成base64格式。接着使用canvas进行压缩,并将canvas转换成图片base64格式,最后调用接口上传图片。在压缩过程中,设置了最大宽度和高度为1280,可以根据实际需求进行调整文章来源地址https://www.toymoban.com/news/detail-513280.html

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

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

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

相关文章

  • uni-app开发微信小程序,H5 关于压缩上传图片的问题

    文章目录 前言 一、为什么要压缩图片 二、图片压缩方式 1. 微信小程序​​​​​​​ 2. H5 总结 关于微信小程序、H5兼容性问题,今天就压缩以及上传图片做一个可实现方法的简要阐述。 在使用uni-app开发小程序及H5的具体业务中,我们会遇到需要让用户上传本地图片的场景

    2024年02月02日
    浏览(70)
  • 微信小程序上传图片写法

    小程序上传图片需要用到小程序API中的wx.uploadFile()方法。以下是一个基本的示例代码: 在这个示例代码中,首先使用wx.chooseImage()方法让用户选择一张图片,然后通过wx.uploadFile()方法将选中的图片上传到指定的接口地址。在上传成功后,我们可以在success回调函数中获

    2024年02月11日
    浏览(83)
  • 微信小程序上传并显示图片

    实现效果: 上传前显示: 点击后可上传,上传后显示: 源代码:  .wxml

    2024年01月18日
    浏览(66)
  • 微信小程序原生上传图片和预览+云函数上传

    展示     1.2.1 uploadPage 说明:调用方法就是属性值是一个函数,因此要注意this问题。要将this指向原来的位置。 展示  说明:点击上传页面展示,在这里我点击了两次 !   1.2.2uploadPreview 说明:需要学习Array.map方法的使用。  展示 说明:点击图片后全屏显示  1.2.3deleteImage按

    2024年02月06日
    浏览(118)
  • 微信小程序实现图片上传(清晰版)

    在wxml文件中添加一个按钮和一个image标签用于显示上传的图片 在js文件中添加选择图片和上传图片的方法

    2023年04月16日
    浏览(96)
  • 微信小程序上传文件及图片(可以预览)

    最近在写小程序项目,碰到了一个需求,需要用户可以上传各种类型的文件和图片,展示在页面上,并且点击还可以进行预览,就找了找微信小程序官网,写了一个例子,分享一下 直接看代码: wxml: wxss: js: 有问题和建议欢迎大家留言

    2024年02月12日
    浏览(55)
  • 微信小程序对上传的图片进行裁剪

    背景: 使用uniapp中uni.chooseImage的裁剪参数crop只能在App中生效,在微信小程序中不生效。 实现思路 uni.chooseImage 打开相册获取图片路径(uni.chooseImage(OBJECT) | uni-app官网 (dcloud.net.cn)) 将获取到的图片路径传入 wx.cropImage 对图片进行裁剪(wx.cropImage(Object object) | 微信开放文档 (q

    2024年02月04日
    浏览(54)
  • 微信小程序多图片上传实用代码记录

    由于在小程序中,wx.uploadFile 只能一次上传一张图片,因此在一次需要上传多张图片的应用场景中例如商品图片上传、评论图片上传等场景下,不得不使用for等循环上传每一张图片,多次调用wx.uploadFile,由此引发了ajax的闭包问题。 我这代码的设想是, 遍历储存上传文件的

    2024年02月13日
    浏览(47)
  • 微信小程序 图片上传与内容安全审核

    之前有开发一个微信小程序,拥有图片上传的功能,上线运行后一直表现良好,用户渐渐增多。 但突然有一天,收到一个系统消息:提示我小程序存在内容安全风险,缺乏对不法违规内容的过滤机制,需要整改,消息如下图: 该消息是安全风险警告,需要限期内进行整改调

    2024年01月16日
    浏览(57)
  • 13、微信小程序:上传图片到服务器

    1、上传图片到服务器,有两个步骤:     1.1  拿到可上传的图片 wx.chooseImage     1.2  将图片上传到服务器  wx.uploadFile 2、代码实现 button bindtap=\\\"upload\\\"点击上传/button image src=\\\"{{imgPath}}\\\" mode=\\\"\\\"/

    2024年02月12日
    浏览(53)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包