微信小程式圖片等比縮放顯示正中間
阿新 • • 發佈:2019-01-02
這是小程式 image標籤的mode ,對圖片的縮放做的處理
- 縮放 scaleToFill 不保持縱橫比縮放圖片,使圖片的寬高完全拉伸至填滿 image 元素
- 縮放 aspectFit 保持縱橫比縮放圖片,使圖片的長邊能完全顯示出來。也就是說,可以完整地將圖片顯示出來。
- 縮放 aspectFill 保持縱橫比縮放圖片,只保證圖片的短邊能完全顯示出來。也就是說,圖片通常只在水平或垂直方向是完整的,另一個方向將會發生擷取。
- 縮放 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;
}