1. 程式人生 > >微信小程式圖片處理 image元件用法

微信小程式圖片處理 image元件用法

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)
  }
})

原圖

image

scaleToFill

不保持縱橫比縮放圖片,使圖片完全適應

image

aspectFit

保持縱橫比縮放圖片,使圖片的長邊能完全顯示出來

image

aspectFill

保持縱橫比縮放圖片,只保證圖片的短邊能完全顯示出來

image

top

不縮放圖片,只顯示圖片的頂部區域

image

bottom

不縮放圖片,只顯示圖片的底部區域

image

center

不縮放圖片,只顯示圖片的中間區域

image

left

不縮放圖片,只顯示圖片的左邊區域

image

right

不縮放圖片,只顯示圖片的右邊邊區域

image

top left

不縮放圖片,只顯示圖片的左上邊區域

image

top right

不縮放圖片,只顯示圖片的右上邊區域

image

bottom left

不縮放圖片,只顯示圖片的左下邊區域

image

bottom right

不縮放圖片,只顯示圖片的右下邊區域

image