微信小程序压缩图片并上传到服务器(拿去即用)
这里注意一下,图片压缩后的宽度是画布宽度的一半
canvasToTempFilePath 创建画布的时候会有一定的时间延迟容易失败,这里加setTimeout来缓冲一下
这是单张图片压缩,多张的压缩暂时还没有成功,保存到服务器上后是空白的,如有大神望指点一二
<canvas canvas-id='photo_canvas' style='width:1000rpx;height:{{canvas_h}}px' class='myCanvas'></canvas>
/**压缩图片 */
compressionImage(tempFilePaths, params) {
let that = this
wx.getImageInfo({
src: tempFilePaths[0],
success: function(res) {
var ctx = wx.createCanvasContext('photo_canvas');
//设置canvas尺寸
var towidth = 500; //按宽度500px的比例压缩
var toheight = Math.trunc(500 * res.height / res.width);
that.setData({
canvas_h: toheight
})
ctx.drawImage(tempFilePaths[0], 0, 0, res.width, res.height, 0, 0, towidth, toheight)
that.createMap(ctx, params);
}
})
},
/**创建画布并上传图片 */
createMap(ctx, params) {
let that = this;
ctx.draw(true, function() {
wx.showLoading({
title: '压缩中',
})
setTimeout(() => {
wx.canvasToTempFilePath({
canvasId: 'photo_canvas',
fileType: "jpg",
success: function(res) {
wx.hideLoading();
wx.uploadFile({
url: app.globalData.baseUrl + '/wechat/want/addWant',
filePath: res.tempFilePath,
name: 'file',
formData: {
'parameters': JSON.stringify(params)
},
success: function(res) {
console.log("state:" + JSON.parse(res.data).state)
if (JSON.parse(res.data).state === 1) {
wx.showToast({
title: '发布成功',
duration: 2000,
icon: "none",
success() {
setTimeout(function() {
wx.navigateBack({
delta: 1,
})
}, 1000);
}
})
}
},
fail(res) {
console.log("fail" + res)
}
})
},
fail(res) {
if (res.errMsg === "canvasToTempFilePath:fail:create bitmap failed") {
console.log("导出map失败")
}
}
}, this)
}, 200);
})
},
微信小程序压缩图片并上传到服务器(拿去即用)的更多相关文章
- 微信小程序 压缩图片并上传
转自https://segmentfault.com/q/1010000012507519 wxml写入 <view bindtap='uploadImg'>上传</view> ...
- 微信小程序实现图片是上传、预览功能
本文实例讲述了微信小程序实现图片上传.删除和预览功能的方法,分享给大家供大家参考,具体如下: 这里主要介绍一下微信小程序的图片上传图片删除和图片预览 1.可以调用相机也可以从本地相册选择 2.本地实现 ...
- 微信小程序实现图片裁剪上传(wepy)
参考https://github.com/we-plugin/we-cropper,在wepy中实现,参考的具体例子是we-cropper/example/cutInside/ 项目上传图片时2:3的 ...
- 微信小程序裁剪图片后上传
上传图片的时候调起裁剪页面,裁剪后再回调完成上传; 图片裁剪直接用we-cropper https://github.com/we-plugin/we-cropper we-cropper使用详细 ...
- HTML5 Canvas前台压缩图片并上传到服务器
1.前台代码: <input id="fileOne" type="file" /> <input id="btnOne" ...
- 微信小程序入门八头像上传
1. action-sheet 底部弹出可选菜单组件 2. wx.uploadFile 将本地资源上传到服务器 3. wx.chooseImage 从本地相册选择图片或使用相机拍照. 4. wx.pr ...
- 微信小程序:多张图片上传
最近在写小程序的相册,需要多张图片的上传.因为小程序不支持数组的多张图片同时上传,然后根据自己的需求+借鉴网上各位大神的案例,总算搞定.分享下,不足之处,多多指教哦 页面wxml: <form ...
- 微信小程序--更换用户头像/上传用户头像/更新用户头像
changeAvatar:function (){ var that=this; wx.chooseImage({ count: 1, // 默认9 sizeType: ['original', 'c ...
- [转]微信小程序实现图片上传功能
本文转自:http://blog.csdn.net/feter1992/article/details/77877659 前端: 微信开发者工具 后端:.Net 服务器:阿里云 这里介绍微信小程序如何 ...
随机推荐
- MySQL异常:com.mysql.jdbc.PacketTooBigException: Packet for query is too large
### Cause: com.mysql.jdbc.PacketTooBigException: Packet for query is too large (1169 > 1024). You ...
- 每日命令:(4)mkdir
linux mkdir 命令用来创建指定的名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录. 1.命令格式: mkdir [选项] 目录... 2.命令 ...
- * screen recording on Ubuntu
- byzanz- kazam-recordmydesktophttps://www.ubuntupit.com/15-best-linux-screen-recorder-and-how-to-in ...
- Apache 流框架 Flink,Spark Streaming,Storm对比分析(2)
此文已由作者岳猛授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 2.Spark Streaming架构及特性分析 2.1 基本架构 基于是spark core的spark s ...
- T1075 明明的随机数 codevs
http://codevs.cn/problem/1075/ 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 白银 Silver 题目描述 Description 明明想在学校中 ...
- 洛谷——P2212 [USACO14MAR]浇地Watering the Fields
P2212 [USACO14MAR]浇地Watering the Fields 题目描述 Due to a lack of rain, Farmer John wants to build an ir ...
- Oracle创建表空间、用户名、密码步骤教程
第一步,以最高级别 SYSDBA 身份登录数据库 cmd 进入命令行 登录方式一: C:\Documents and Settings\Administrator>sqlplus sys/sys ...
- js部分基础
1.js的基本类型有哪些?引用类型有哪些?null和undefined的区别. 基础类型:number,null,regex,string,boolean 引用类型 : object,function ...
- 如何修改ICO文件的尺寸
使用Axialis IconWorkshop,该软件下载地址: http://www.xiazaiba.com/html/161.html 尺寸过大的ICO将无法作为应用程序的图标,如下图所示,这些素 ...
- UIView加入手势 然后UITableView 加入进这个View 导致UITableView 的单元格点击事件无效
#import "ViewController.h" @interface ViewController ()<UITableViewDataSource,UITableVi ...