微信小程序作為一種輕量級應用程序,已經受到越來越多開發者的青睞。圖片作為小程序開發中不可或缺的一部分,也有它獨特的使用方法和技巧。本文將從多個方面對微信小程序圖片進行詳細的闡述,幫助開發者更好地使用小程序圖片功能。
一、本地圖片
本地圖片指的是小程序項目內的圖片資源。在小程序開發中,我們可以使用<image>
標籤來顯示本地圖片。下面是一個簡單的例子:
<image src="/images/avatar.jpg">
其中,/images/avatar.jpg
為本地圖片資源的相對路徑。在小程序中,本地圖片路徑中不需要包含主機名或協議名。如果需要在小程序中使用本地圖片,需要先在app.json
中的pages
欄位列表中添加圖片路徑,如下所示:
"pages": [
"pages/index/index",
"pages/logs/logs",
"pages/about/about",
"pages/img/img"
],
"subPackages":[{
"root":"pages/sub",
"pages":[
"index/index"
]
}],
"window": {
"navigationBarTitleText": "Demo"
},
"tabBar": {
"list": [{
"pagePath": "pages/index/index",
"text": "首頁"
}, {
"pagePath": "pages/logs/logs",
"text": "日誌"
}, {
"pagePath": "pages/about/about",
"text": "關於"
}, {
"pagePath": "pages/img/img",
"text": "圖片"
}]
},
"usingComponents": {}
在上述代碼中,pages/img/img
表示圖片頁面的路徑。我們在這個頁面中使用<image>
標籤來展示圖片,如下所示:
<image src="/images/avatar.jpg">
本地圖片可以隨著小程序一同打包,省去了請求遠程圖片的時間和流量。但是,如果圖片過多或比較大,會對小程序的載入速度產生影響。
二、遠程圖片
遠程圖片指的是從伺服器上請求的圖片資源。在小程序開發中,我們同樣可以使用<image>
標籤來顯示遠程圖片。如下所示:
<image src="https://example.com/avatar.jpg">
在上述代碼中,https://example.com/avatar.jpg
為遠程圖片的URL。需要注意的是,在小程序中,使用遠程圖片需要在app.json
文件中聲明允許跨域請求的白名單。
三、預覽圖片
在小程序中,可以通過自定義事件和微信API來實現預覽圖片的功能。我們可以先為圖片綁定一個tap
事件:
<image src="{{imgUrl}}" mode="aspectFit" bind:tap="previewImage">
在bind:tap="previewImage"
中,previewImage
為我們自定義的事件名稱。接下來,在我們的page.js
文件中編寫相應的事件處理函數:
Page({
data: {
imgUrl: "https://example.com/avatar.jpg"
},
previewImage: function (e) {
var current = e.target.dataset.src;
wx.previewImage({
current: current,
urls: [this.data.imgUrl]
})
}
})
在上述代碼中,我們通過wx.previewImage
函數來實現圖片預覽功能。其中,current
表示當前預覽的圖片URL,urls
表示預覽圖片的URL數組。
四、優化圖片載入
為了提高小程序的載入速度,我們可以對小程序圖片進行優化。常見的圖片優化方式有以下幾種:
1. 圖片壓縮:可使用在線工具或本地壓縮工具對圖片進行壓縮,減小圖片體積。
2. 圖片懶載入:在小程序中,我們可以通過wx.createIntersectionObserver
和observer.relativeToViewport().observe('selector', (res) => {})
函數來實現圖片懶載入。在用戶滾動時,將未出現在視圖中的圖片設為不可見,當圖片出現在視圖中時再將其設為可見。
3. 使用WebP格式:WebP格式是一種新型的圖片格式,相比於JPEG等傳統格式,WebP格式的圖片體積更小,在保證圖片質量的情況下,能大幅減少圖片的載入時間。
五、圖片上傳
小程序中的用戶上傳功能建立在微信開放能力之上,需要先獲取用戶授權。在用戶上傳圖片後,我們可以通過wx.chooseImage
函數來獲取用戶選擇的圖片,並通過wx.uploadFile
函數來將圖片上傳至伺服器。具體實現可以參考以下代碼:
// 獲取用戶授權
wx.getSetting({
success(res) {
if (!res.authSetting['scope.record']) {
wx.authorize({
scope: 'scope.record',
success() {
console.log('用戶已授權')
}
})
}
}
})
// 選擇圖片
wx.chooseImage({
success(res) {
const tempImagePath = res.tempFilePaths[0]
// 上傳圖片
wx.uploadFile({
url: 'https://example.com/upload',
filePath: tempImagePath,
name: 'image',
success(res) {
console.log('上傳成功')
console.log(res.data)
}
})
}
})
可以通過scope.record
來獲取用戶授權,授權成功後就可以調用wx.chooseImage
函數來選擇要上傳的圖片。然後使用wx.uploadFile
函數來將圖片上傳至伺服器。
總結
本文從多個方面對微信小程序圖片進行了詳細的闡述,介紹了本地圖片、遠程圖片、預覽圖片、優化圖片載入和圖片上傳等功能。對於初學者來說,這些知識點都是非常重要的,相信通過本文的學習,大家已經有了更深入的了解和掌握。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/197262.html