작은 프로그램 및 페이지 레이아웃 개발 과정에서 이미지 처리 문제가 자주 발생합니다. 예를 들어 이미지의 높이와 높이가 고정되어 있지 않지만 이미지의 높이와 너비가 고정되어 있는 경우 원본 그림이 이미지에서 설정한 고정된 높이와 너비에 비례하지 않으면 그림이 변형되고 선명하지 않게 됩니다. 이때, 다음과 같은 비례 스케일링 방식을 이용하면 이미지가 변형되지 않도록 스케일을 조정할 수 있습니다. 또는 이미지의 바인드로드 방식을 통해 이미지의 높이와 너비를 동적으로 구하고, 이미지 레이아웃의 높이와 너비가 원본 이미지의 높이와 너비와 동일하도록 이미지의 높이와 너비를 동적으로 설정합니다.
이미지 비례 배율 도구
//Util.js class Util{ /*** * 按照显示图片的宽等比例缩放得到显示图片的高 * @params originalWidth 原始图片的宽 * @params originalHeight 原始图片的高 * @params imageWidth 显示图片的宽,如果不传就使用屏幕的宽 * 返回图片的宽高对象 ***/ static imageZoomHeightUtil(originalWidth,originalHeight,imageWidth){ let imageSize = {}; if(imageWidth){ imageSize.imageWidth = imageWidth; imageSize.imageHeight = (imageWidth * originalHeight) / originalWidth; }else{//如果没有传imageWidth,使用屏幕的宽 wx.getSystemInfo({ success: function (res) { imageWidth = res.windowWidth; imageSize.imageWidth = imageWidth; imageSize.imageHeight = (imageWidth * originalHeight) / originalWidth; } }); } return imageSize; } /*** * 按照显示图片的高等比例缩放得到显示图片的宽 * @params originalWidth 原始图片的宽 * @params originalHeight 原始图片的高 * @params imageHeight 显示图片的高,如果不传就使用屏幕的高 * 返回图片的宽高对象 ***/ static imageZoomWidthUtil(originalWidth,originalHeight,imageHeight){ let imageSize = {}; if(imageHeight){ imageSize.imageWidth = (imageHeight *originalWidth) / originalHeight; imageSize.imageHeight = imageHeight; }else{//如果没有传imageHeight,使用屏幕的高 wx.getSystemInfo({ success: function (res) { imageHeight = res.windowHeight; imageSize.imageWidth = (imageHeight *originalWidth) / originalHeight; imageSize.imageHeight = imageHeight; } }); } return imageSize; } } export default Util;
이미지 구성 요소를 사용하여 이미지를 로드하고 다음을 통해 동적으로 가져옵니다. binload 이미지의 높이와 너비, 이미지의 높이와 너비를 동적으로 설정
<image bindload="imageLoad" style="width:{{imageWidth}}px;;height:{{imageHeight}}px;" src="../pro.png"/>
index.js 코드는 다음과 같습니다
import Util from '../common/Util'; Page({ data:{ imageWidth:0, imageHeight:0 }, imageLoad: function (e) { //获取图片的原始宽度和高度 let originalWidth = e.detail.width; let originalHeight = e.detail.height; //let imageSize = Util.imageZoomHeightUtil(originalWidth,originalHeight); //let imageSize = Util.imageZoomHeightUtil(originalWidth,originalHeight,375); let imageSize = Util.imageZoomWidthUtil(originalWidth,originalHeight,145); this.setData({imageWidth:imageSize.imageWidth,imageHeight:imageSize.imageHeight}); } })
위 내용은 WeChat 미니 프로그램에서 이미지를 처리할 때 발생하는 문제 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!