小程序點(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) { //畫(huà)入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ò)期需刷新'); } }) } ) } }) }, //重繪畫(huà)板 resetCanvas(context){ context.rect(0, 0, this.data.screenWidth, this.data.screenHeight - 4); //畫(huà)板大小 context.setFillStyle('#fff');//背景填充 context.fill() //設(shè)置填充 context.draw() //開(kāi)畫(huà) },
wxml文件需要添加如下代碼:
<view hidden="{{!isSignCanvasShow}}"> <canvas canvas-id="picCanvas" id='picCanvas' class="pic-canvas" ></canvas> </view>
方法解釋?zhuān)?/p>
通過(guò)wx.previewImage預(yù)覽圖片時(shí),會(huì)出現(xiàn)格式為png預(yù)覽背景為黑色時(shí),圖片查看不清楚,能過(guò)下面的方法轉(zhuǎn)化為白色底,方便查看
1、先用wx.getImageInfo 下載圖片到本地,并且獲取圖片的信息;
2、將圖片畫(huà)入canvas,并生成臨時(shí)圖片地址;
3、將canvas生成的地址填寫(xiě)入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)畫(huà)示例
- 小程序圖片剪裁加旋轉(zhuǎn)的示例代碼
相關(guān)文章
微信小程序?qū)崿F(xiàn)長(zhǎng)按拖拽排序功能
這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)長(zhǎng)按拖拽排序功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05使用Github?Actions發(fā)布npm包完整過(guò)程詳解
本文包含本地發(fā)布npm包發(fā)布流程,?和?github?action自動(dòng)發(fā)布npm包流程,幫助你更好的發(fā)布自己或公司的npm包,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09JS實(shí)現(xiàn)部分HTML固定頁(yè)面頂部隨屏滾動(dòng)效果
這篇文章主要介紹了JS實(shí)現(xiàn)部分HTML固定頁(yè)面頂部隨屏滾動(dòng)效果,涉及JavaScript響應(yīng)onscroll事件動(dòng)態(tài)操作頁(yè)面元素屬性的相關(guān)技巧,需要的朋友可以參考下2015-12-12js模仿windows桌面圖標(biāo)排列算法具體實(shí)現(xiàn)(附圖)
需要引入Jquery,如果需要全部功能,請(qǐng)引入jquery-ui和jquery-ui.css,具體實(shí)現(xiàn)步驟如下,感興趣的朋友可以參考下哈2013-06-06JavaScript 日期時(shí)間選擇器一些小結(jié)
flatpickr 是一個(gè)輕量級(jí)、注重精益、由 UX 驅(qū)動(dòng)和可擴(kuò)展的 JavaScript 日期時(shí)間選擇器。這篇文章主要介紹了JavaScript 日期時(shí)間選擇器,需要的朋友可以參考下2018-04-04微信小程序?qū)崿F(xiàn)滾動(dòng)Tab選項(xiàng)卡
這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)滾動(dòng)Tab選項(xiàng)卡,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-11-11推薦三款不錯(cuò)的圖片壓縮上傳插件(webuploader、localResizeIMG4、LUploader)
這篇文章主要為大家詳細(xì)介紹了三款不錯(cuò)的圖片壓縮上傳插件,webuploader、移動(dòng)端上傳插件localResizeIMG4以及LUploader)2017-04-04