微信小程式圖片處理 image元件用法
阿新 • • 發佈:2018-11-23
image
圖片。
屬性名 | 型別 | 預設值 | 說明 | 最低版本 |
---|---|---|---|---|
src | String | 圖片資源地址,支援雲檔案ID(2.2.3起) | ||
mode | String | 'scaleToFill' | 圖片裁剪、縮放的模式 | |
lazy-load | Boolean | false | 圖片懶載入。只針對page與scroll-view下的image有效 | 1.5.0 |
binderror | HandleEvent | 當錯誤發生時,釋出到 AppService 的事件名,事件物件event.detail = {errMsg: 'something wrong'} | ||
bindload | HandleEvent | 當圖片載入完畢時,釋出到 AppService 的事件名,事件物件event.detail = {height:'圖片高度px', width:'圖片寬度px'} |
注1:image元件預設寬度300px、高度225px 注2:image元件中二維碼/小程式碼圖片不支援長按識別。僅在wx.previewImage中支援長按識別。
mode 有效值:
mode 有 13 種模式,其中 4 種是縮放模式,9 種是裁剪模式。
模式 | 值 | 說明 |
---|---|---|
縮放 | scaleToFill | 不保持縱橫比縮放圖片,使圖片的寬高完全拉伸至填滿 image 元素 |
縮放 | aspectFit | 保持縱橫比縮放圖片,使圖片的長邊能完全顯示出來。也就是說,可以完整地將圖片顯示出來。 |
縮放 | aspectFill | 保持縱橫比縮放圖片,只保證圖片的短邊能完全顯示出來。也就是說,圖片通常只在水平或垂直方向是完整的,另一個方向將會發生擷取。 |
縮放 | widthFix | 寬度不變,高度自動變化,保持原圖寬高比不變 |
裁剪 | top | 不縮放圖片,只顯示圖片的頂部區域 |
裁剪 | bottom | 不縮放圖片,只顯示圖片的底部區域 |
裁剪 | center | 不縮放圖片,只顯示圖片的中間區域 |
裁剪 | left | 不縮放圖片,只顯示圖片的左邊區域 |
裁剪 | right | 不縮放圖片,只顯示圖片的右邊區域 |
裁剪 | top left | 不縮放圖片,只顯示圖片的左上邊區域 |
裁剪 | top right | 不縮放圖片,只顯示圖片的右上邊區域 |
裁剪 | bottom left | 不縮放圖片,只顯示圖片的左下邊區域 |
裁剪 | bottom right | 不縮放圖片,只顯示圖片的右下邊區域 |
示例:
<view class="page">
<view class="page__hd">
<text class="page__title">image</text>
<text class="page__desc">圖片</text>
</view>
<view class="page__bd">
<view class="section section_gap" wx:for="{{array}}" wx:for-item="item">
<view class="section__title">{{item.text}}</view>
<view class="section__ctn">
<image style="width: 200px; height: 200px; background-color: #eeeeee;" mode="{{item.mode}}" src="{{src}}"></image>
</view>
</view>
</view>
</view>
Page({
data: {
array: [{
mode: 'scaleToFill',
text: 'scaleToFill:不保持縱橫比縮放圖片,使圖片完全適應'
}, {
mode: 'aspectFit',
text: 'aspectFit:保持縱橫比縮放圖片,使圖片的長邊能完全顯示出來'
}, {
mode: 'aspectFill',
text: 'aspectFill:保持縱橫比縮放圖片,只保證圖片的短邊能完全顯示出來'
}, {
mode: 'top',
text: 'top:不縮放圖片,只顯示圖片的頂部區域'
}, {
mode: 'bottom',
text: 'bottom:不縮放圖片,只顯示圖片的底部區域'
}, {
mode: 'center',
text: 'center:不縮放圖片,只顯示圖片的中間區域'
}, {
mode: 'left',
text: 'left:不縮放圖片,只顯示圖片的左邊區域'
}, {
mode: 'right',
text: 'right:不縮放圖片,只顯示圖片的右邊邊區域'
}, {
mode: 'top left',
text: 'top left:不縮放圖片,只顯示圖片的左上邊區域'
}, {
mode: 'top right',
text: 'top right:不縮放圖片,只顯示圖片的右上邊區域'
}, {
mode: 'bottom left',
text: 'bottom left:不縮放圖片,只顯示圖片的左下邊區域'
}, {
mode: 'bottom right',
text: 'bottom right:不縮放圖片,只顯示圖片的右下邊區域'
}],
src: '../../resources/cat.jpg'
},
imageError: function(e) {
console.log('image3發生error事件,攜帶值為', e.detail.errMsg)
}
})
原圖
scaleToFill
不保持縱橫比縮放圖片,使圖片完全適應
aspectFit
保持縱橫比縮放圖片,使圖片的長邊能完全顯示出來
aspectFill
保持縱橫比縮放圖片,只保證圖片的短邊能完全顯示出來
top
不縮放圖片,只顯示圖片的頂部區域
bottom
不縮放圖片,只顯示圖片的底部區域
center
不縮放圖片,只顯示圖片的中間區域
left
不縮放圖片,只顯示圖片的左邊區域
right
不縮放圖片,只顯示圖片的右邊邊區域
top left
不縮放圖片,只顯示圖片的左上邊區域
top right
不縮放圖片,只顯示圖片的右上邊區域
bottom left
不縮放圖片,只顯示圖片的左下邊區域
bottom right
不縮放圖片,只顯示圖片的右下邊區域