1. 程式人生 > >微信小程式圖片等比縮放顯示正中間

微信小程式圖片等比縮放顯示正中間

這是小程式 image標籤的mode ,對圖片的縮放做的處理

  1. 縮放 scaleToFill 不保持縱橫比縮放圖片,使圖片的寬高完全拉伸至填滿 image 元素
  2. 縮放 aspectFit 保持縱橫比縮放圖片,使圖片的長邊能完全顯示出來。也就是說,可以完整地將圖片顯示出來。
  3. 縮放 aspectFill 保持縱橫比縮放圖片,只保證圖片的短邊能完全顯示出來。也就是說,圖片通常只在水平或垂直方向是完整的,另一個方向將會發生擷取。
  4. 縮放 widthFix 寬度不變,高度自動變化,保持原圖寬高比不變

但是這裡的處理無法在一個固定框裡顯示圖片的正中間

圖片完整的顯示並且置於固定框內正中間

主要程式碼

let originalWidth = e.detail.width;
let originalHeight = e.detail.height;
var mariginTopSize = 0;
var mariginLeftSize = 0;
let imageSize = ImgUtil.imageZoomWidthUtil(originalWidth, originalHeight, 180);
//按高度180縮放 180畫素是根據自己專案的框固定的高度
//如果圖片寬度沒有大於螢幕寬度
if (imageSize.imageWidth < this.data.screenWidth
) { //向上偏移 imageSize = ImgUtil.imageZoomHeightUtil(originalWidth, originalHeight, this.data.screenWidth); mariginTopSize = -(imageSize.imageHeight - 180) / 2; } else { //向左偏移 mariginLeftSize = -(imageSize.imageWidth - this.data.screenWidth) / 2; }