小程序点击图片,png转jpg,再预览方法
- //页面数据初始化添加参数:isSignCanvassShow
- //通过canvas将图片转为jpg,使图片生成白色底便于查看预览
- //list为原图片数组列表,index表示当前图片下标,
- //imgList表示已经通过canvas转化的图片列表
- trasformImgType(list,index,imgList){
- this.setData({
- isSignCanvasShow:true
- });
- index=index?index:0;
- const that=this;
- let img=list[index].fileUrl;
- img=img.replace(/http/,'https');
- tip.loading('正在打开图片');
- //获取图片信息,
- wx.getImageInfo({
- src: img,
- success (res) {
- //画入canvas
- const context = wx.createCanvasContext('picCanvas');
- that.resetCanvas(context);
- context.drawImage(res.path,0, 0);
- context.draw(false,function(drawed){
- // console.log(drawed);
- wx.canvasToTempFilePath({
- x: 0,
- y: 0,
- width: 414,
- height: 300,
- destWidth: 414,
- destHeight:300,
- fileType: 'jpg',
- canvasId: 'picCanvas',
- success(imgRes) {
- tip.loaded();
- imgList.push(imgRes.tempFilePath);
- if(index<list.length-1){
- that.trasformImgType(list,index+1,imgList)
- return;
- }
- that.setData({
- isSignCanvasShow:false
- })
- wx.previewImage({
- current: '', //图标当前下标
- urls: imgList, // 需要预览的图片http链接列表
- fail:function(res){
- tip.alert('图片过期需刷新');
- },
- })
- },
- fail() {
- that.setData({
- isSignCanvasShow:false
- })
- tip.loaded();
- tip.alert('图片过期需刷新');
- }
- })
- } )
- }
- })
- },
- //重绘画板
- resetCanvas(context){
- context.rect(0, 0, this.data.screenWidth, this.data.screenHeight - 4); //画板大小
- context.setFillStyle('#fff');//背景填充
- context.fill() //设置填充
- context.draw() //开画
- },
- wxml文件需要添加如下代码:
- <view hidden="{{!isSignCanvasShow}}">
- <canvas canvas-id="picCanvas" id='picCanvas' class="pic-canvas" ></canvas>
- </view>
方法解释:
通过wx.previewImage预览图片时,会出现格式为png预览背景为黑色时,图片查看不清楚,能过下面的方法转化为白色底,方便查看
1、先用wx.getImageInfo 下载图片到本地,并且获取图片的信息;
2、将图片画入canvas,并生成临时图片地址;
3、将canvas生成的地址填写入imgList缓存起来;
4、当所有图片都转化完成之后,调用wx.previewImage查看图片
5、每次转化完一片图片的时候,就重新绘制一下canvas;
小程序点击图片,png转jpg,再预览方法的更多相关文章
- 微信小程序点击图片放大预览
微信小程序点击图片放大预览使用到 wx.previewImage 接口,可以放大.上/下一张 上代码 wxml代码 <view class='content-img' wx:if="{ ...
- 微信小程序点击图片全屏
作为一个只懂简单HTML,jQuery,JS的web后台开发者,最近在学习小程序开发,现在将小程序的点击全屏功能的相关内容记录下来.如果有不对的地方或者有更简单的方法,请留言指教 0_0~ .js 文 ...
- 微信小程序点击图片预览-wx.previewImage
<view class='imgList'> <view class='imgList-li' wx:for='{{imgArr}}'> <image class='im ...
- 微信小程序点击图片放大
WXML: <view class='imgList'> <view class='imgList-li' wx:for='{{imgArr}}'> <image cla ...
- 微信小程序-点击图片预览
拿接口 有封装 封装查看另外的博文 点击动作 WXHTML 注意 data-xxxx自定义属性 这样知道我点的是哪个参数
- 微信小程序开发之图片预览
实现图片的展示和大图预览 使用wx.previewImage(OBJECT)来实现 OBJECT参数说明: 参数 类型 必填 说明 current String 否 当前显示图片的链接,不填则默认为 ...
- Visual Studio 2017中使用正则修改部分内容 如何使用ILAsm与ILDasm修改.Net exe(dll)文件 C#学习-图解教程(1):格式化数字字符串 小程序开发之图片转Base64(C#、.Net) jquery遍历table为每一个单元格取值及赋值 。net加密解密相关方法 .net关于坐标之间一些简单操作
Visual Studio 2017中使用正则修改部分内容 最近在项目中想实现一个小工具,需要根据类的属性<summary>的内容加上相应的[Description]特性,需要实现的效 ...
- 微信小程序点击控制元素的显示与隐藏
微信小程序点击控制元素的显示与隐藏 首先我们先来看一下单个点击效果 我们来看一下wxml中的代码: <view class="conten"> <view cla ...
- 小程序点击跳转外部链接 微信小程序提示:不支持打开非业务域名怎么办 使用web-view 配置业务域名
小程序点击跳转外部页面 1.index.wxml 添加点击事件 标签可以是小程序支持的 <!-- 邀请好友 --> <cover-image src='/img/invitat ...
随机推荐
- [MyBatis]浅谈如何实现事务处理
要实现事务处理,就得从SqlSession中取出connection来,然后对connection采用setAutoCommit,commit,rollback等操作,最后的时候,不能像JDBC一样关 ...
- oracle OPEN FOR [USING] 语句
目的: 和ref cursor配合使用, 可以将游标变量分配给不同的SQL (而不是在declare中把游标给定死), 增加处理游标的灵活性语法: declare type type_c ...
- Java同步数据结构之ConcurrentLinkedQueue
前言 前面介绍的Queue都是通过Lock锁实现的阻塞队列,今天介绍一种非阻塞队列ConcurrentLinkedQueue,所谓非阻塞,其实就是通过CAS代替加锁来实现的高效的非阻塞队列.当许多线程 ...
- 七天学会ASP.NET MVC
地址一: http://www.cnblogs.com/powertoolsteam/p/MVC_one.html http://www.cnblogs.com/powertoolsteam/p/MV ...
- qt ui
/******************************************************************************** ** Form generated ...
- postgresql之 drop & delete & truncate
官网:https://www.postgresql.org/docs/8.1/sql-droptable.html Name DROP TABLE -- remove a table Synopsis ...
- 阶段5 3.微服务项目【学成在线】_day04 页面静态化_11-freemarker静态化测试-基于模板字符串静态化
再定义一个测试方法 把拿到的字符串变成模板 加载器设置好了以后, 加一个断点来测试 生成模板文件 上面这种方式很灵活. 最终代码 @Test public void testGenerateHtmlB ...
- Django:(07)数据库
一.ORM框架 ORM ,Object relational mapping 对象关系映射. 把类和数据库表对应,把对象和表记录对应,通过类和对象操作数据库表中的数据,而不需要编写SQL语句. Dja ...
- 自学电脑游戏第三天(Swing组件)
Swing组件 1.按钮(Jbutton) 示例:选择用户所喜欢的城市. import java.awt.*; import java.awt.event.*; import javax.swing. ...
- org.springframework.http.converter.HttpMessageNotReadableException
发起请求报错:org.springframework.http.converter.HttpMessageNotReadableException 查看请求头: application/json 所以 ...