微信小程序點(diǎn)擊保存圖片到本機(jī)功能

1.首先我們要把想保存的圖片繪制在畫布上
<view class='container'>
<canvas style='width:{{canvasWidth}}px; height:{{canvasHeight}}px' class="canvas" id="canvas" canvas-id="canvas" disable-scroll="true">
</canvas>
<button bindtap='clickMe'>保存圖片</button>
</view>
2.我們在看看看js代碼在用wx.canvasToTempFilePath方法會(huì)返回一個(gè)tempFilePath圖片路徑
// canvas 全局配置
var context = null;
var rpx
var posterHeight = 0
var posterWidth = 0
var avatarPadding = 0 //距離邊界
var avatarRadiu = 0 //頭像半徑
var textScale = 0 //文字比例
//注冊頁面
Page({
data: {
img: "../../images/img1.jpg",
myCanvasWidth: 0,
myCanvasHeight: 0,
posterHeight: 0,
},
onLoad: function (options) {
var that = this
var myCanvasWidth = that.data.myCanvasWidth //為了讓圖片滿鋪頁面
var myCanvasHeight = that.data.canvasHeight
context = wx.createCanvasContext('canvas');
wx.getSystemInfo({
success: function (res) {
myCanvasWidth = res.screenWidth
myCanvasHeight = res.screenHeight
posterWidth = Math.round(res.screenWidth * 0.68) //計(jì)算讓畫布圖片自適應(yīng)
posterHeight = Math.round(posterWidth * 1920 / 1080)
avatarPadding = Math.round(posterWidth * 20 / 375)
avatarRadiu = Math.round(posterWidth * 25 / 375)
textScale = Math.round(posterWidth / 375)
rpx = res.windowWidth / 375;
that.setData({
myCanvasWidth: myCanvasWidth,
myCanvasHeight: myCanvasHeight,
posterHeight: posterHeight
})
context.drawImage(that.data.img, 0, 0, that.data.myCanvasWidth, that.data.myCanvasHeight); //畫布繪制圖片
context.draw();
},
})
},
clickMe: function () { //保存圖片
wx.canvasToTempFilePath({
canvasId: 'canvas',
fileType: 'jpg',
success: function (res) {
console.log(res)
wx.saveImageToPhotosAlbum({
filePath: res.tempFilePath,
success(res) {
console.log(res)
wx.hideLoading();
wx.showToast({
title: '保存成功',
});
// //存入服務(wù)器
// wx.uploadFile({
// url: 'a.php', //接口地址
// filePath: res.tempFilePath,
// name: 'file',
// formData: { //HTTP 請求中其他額外的 form data
// 'user': 'test'
// },
// success: function (res) {
// console.log(res);
// },
// fail: function (res) {
// console.log(res);
// },
// complete: function (res) {
// }
// });
},
fail() {
wx.hideLoading()
}
})
}
})
},
})
3,css樣式 直接給畫布設(shè)置高度寬度就可以 圖片會(huì)鋪滿屏幕
總結(jié)
以上所述是小編給大家介紹的微信小程序點(diǎn)擊保存圖片到本機(jī)功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
相關(guān)文章
Javascript 兩個(gè)窗體之間傳值實(shí)現(xiàn)代碼
眾所周知window.open() 函數(shù)可以用來打開一個(gè)新窗口,那么如何在子窗體中向父窗體傳值呢,其實(shí)通過window.opener即可獲取父窗體的引用。2009-09-09
JavaScript設(shè)計(jì)模式--簡單工廠模式實(shí)例分析【XHR工廠案例】
這篇文章主要介紹了JavaScript設(shè)計(jì)模式--簡單工廠模式,結(jié)合實(shí)例形式分析了JavaScript設(shè)計(jì)模式中簡單工廠模式原理與XHR工廠應(yīng)用案例,需要的朋友可以參考下2020-05-05
js獲取數(shù)組最后一位元素的五種方法及執(zhí)行效率對比
js獲取數(shù)組最后一位元素的五種方法代碼示例,使用console.time和console.timeEnd測量javascript腳本程序執(zhí)行效率對比2023-08-08
js實(shí)現(xiàn)倒計(jì)時(shí)關(guān)鍵代碼
這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)倒計(jì)時(shí)的關(guān)鍵代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05
js報(bào)錯(cuò) Object doesn''t support this property or method的原因分析
運(yùn)行js是出現(xiàn)Object doesn't support this property or method 錯(cuò)誤的可能原因分析。2011-03-03
你不知道的5個(gè)JavaScript中JSON的秘密功能分享
在開發(fā)中,我們會(huì)經(jīng)常使用?JSON.stringify(object)?來序列化對象,但JSON.stringify方法除了了第一個(gè)參數(shù)外,還有其它參數(shù)可用,今天我們一起來看看這些參數(shù)是做啥的2023-05-05

