您好,欢迎访问一九零五行业门户网

微信小程序开发过程中关于图片处理的问题

在小程序的开发过程中,页面布局中,我们经常会遇到一些图片处理的问题,比如,如果图片不是固定高度和高度,但image设置的是固定的高度和宽度,这时候原始图片相对image设置的固定高度和宽度不是等比例大小,那么这张图片就会变形,变的不清晰。这时就可以使用下面的等比例缩放的方式缩放图片,让图片不变形。或者通过image的bindload方法动态的获取图片的高度和宽度,动态的设置图片的高度和宽度,是图片布局的高度和宽度和原始图片的高度和宽度相等。
1.图片等比例缩放工具
[applescript] 纯文本查看 复制代码
//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;
2.使用image组件加载图片,通过bindload动态的获取图片的高度和宽度,动态的设置图片的高度和宽度
[applescript] 纯文本查看 复制代码
<image bindload="imageload" style="width:{{imagewidth}}px;;height:{{imageheight}}px;" src="../pro.png"/>
index.js代码如下
[applescript] 纯文本查看 复制代码
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}); } })
以上就是微信小程序开发过程中关于图片处理的问题的详细内容。
其它类似信息

推荐信息