小程序点击图片,png转jpg,再预览方法

Posted Leepyng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小程序点击图片,png转jpg,再预览方法相关的知识,希望对你有一定的参考价值。

//通过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()    //开画

    },

  方法解释:

 

通过wx.previewImage预览图片时,会出现格式为png预览背景为黑色时,图片查看不清楚,能过下面的方法转化为白色底,方便查看

1、先用wx.getImageInfo 下载图片到本地,并且获取图片的信息;

2、将图片画入canvas,并生成临时图片地址;

3、将canvas生成的地址填写入imgList缓存起来;

4、当所有图片都转化完成之后,调用wx.previewImage查看图片

5、每次转化完一片图片的时候,就重新绘制一下canvas;

以上是关于小程序点击图片,png转jpg,再预览方法的主要内容,如果未能解决你的问题,请参考以下文章

jquery怎么打开本地图片预览,点击确定后上传

如何将照片jpg 转换成png格式

怎样把jpg图片变成png格式的

如何将jpg转换成png

微信小程序引入Base64 图标库

在ios中.9.png怎么使用