小程序點(diǎn)擊圖片實(shí)現(xiàn)png轉(zhuǎn)jpg
這篇文章主要介紹了小程序點(diǎn)擊圖片實(shí)現(xiàn)png轉(zhuǎn)jpg,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
頁(yè)面數(shù)據(jù)初始化添加參數(shù):isSignCanvassShow<br><br>//通過(guò)canvas將圖片轉(zhuǎn)為jpg,使圖片生成白色底便于查看預(yù)覽
//list為原圖片數(shù)組列表,index表示當(dāng)前圖片下標(biāo),
//imgList表示已經(jīng)通過(guò)canvas轉(zhuǎn)化的圖片列表
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('正在打開(kāi)圖片');
//獲取圖片信息,
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: '', //圖標(biāo)當(dāng)前下標(biāo)
urls: imgList, // 需要預(yù)覽的圖片http鏈接列表
fail:function(res){
tip.alert('圖片過(guò)期需刷新');
},
})
},
fail() {
that.setData({
isSignCanvasShow:false
})
tip.loaded();
tip.alert('圖片過(guò)期需刷新');
}
})
} )
}
})
},
//重繪畫板
resetCanvas(context){
context.rect(0, 0, this.data.screenWidth, this.data.screenHeight - 4); //畫板大小
context.setFillStyle('#fff');//背景填充
context.fill() //設(shè)置填充
context.draw() //開(kāi)畫
},
wxml文件需要添加如下代碼:
<view hidden="{{!isSignCanvasShow}}">
<canvas canvas-id="picCanvas" id='picCanvas' class="pic-canvas" ></canvas>
</view>
方法解釋:
通過(guò)wx.previewImage預(yù)覽圖片時(shí),會(huì)出現(xiàn)格式為png預(yù)覽背景為黑色時(shí),圖片查看不清楚,能過(guò)下面的方法轉(zhuǎn)化為白色底,方便查看
1、先用wx.getImageInfo 下載圖片到本地,并且獲取圖片的信息;
2、將圖片畫入canvas,并生成臨時(shí)圖片地址;
3、將canvas生成的地址填寫入imgList緩存起來(lái);
4、當(dāng)所有圖片都轉(zhuǎn)化完成之后,調(diào)用wx.previewImage查看圖片
5、每次轉(zhuǎn)化完一片圖片的時(shí)候,就重新繪制一下canvas;
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 微信小程序?qū)崿F(xiàn)圖片翻轉(zhuǎn)效果的實(shí)例代碼
- 詳解微信小程序圖片地扯轉(zhuǎn)base64解決方案
- 微信小程序點(diǎn)擊圖片實(shí)現(xiàn)長(zhǎng)按預(yù)覽、保存、識(shí)別帶參數(shù)二維碼、轉(zhuǎn)發(fā)等功能
- 微信小程序?qū)崿F(xiàn)點(diǎn)擊圖片旋轉(zhuǎn)180度并且彈出下拉列表
- 微信小程序內(nèi)拖動(dòng)圖片實(shí)現(xiàn)移動(dòng)、放大、旋轉(zhuǎn)的方法
- 微信小程序 Animation實(shí)現(xiàn)圖片旋轉(zhuǎn)動(dòng)畫示例
- 小程序圖片剪裁加旋轉(zhuǎn)的示例代碼
相關(guān)文章
Javascript模塊化機(jī)制實(shí)現(xiàn)原理詳解
這篇文章主要介紹了Javascript模塊化機(jī)制實(shí)現(xiàn)原理詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04
微信小程序配置服務(wù)器提示驗(yàn)證token失敗的解決方法
這篇文章主要介紹了微信小程序配置服務(wù)器提示驗(yàn)證token失敗的解決方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-04-04
你需要知道的TypeScript高級(jí)類型總結(jié)
在開(kāi)發(fā)過(guò)程中,為了應(yīng)對(duì)多變的復(fù)雜場(chǎng)景,我們需要了解一下?TypeScript?的高級(jí)類型。本文就為大家整理了一些需要掌握的TypeScript高級(jí)類型,需要的可以參考一下2022-08-08
layui 關(guān)閉open彈出框 刷新table表格頁(yè)面的方法
今天小編就為大家分享一篇layui 關(guān)閉open彈出框 刷新table表格頁(yè)面的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-09-09
使用Perl和庫(kù)WWW::Curl的爬蟲(chóng)程序步驟
本文給大家分享在Perl中使用WWW::Curl庫(kù)編寫爬蟲(chóng)程序的步驟和方法,感興趣的朋友跟隨小編一起看看吧2025-03-03

