微信小程序里实现图片等比例缩放的方法剖析

why 384 2024-08-26 09:33:01

这篇文章主要介绍了微信小程序 图片等比例缩放(图片自适应屏幕)的相关资料,需要的朋友可以参考下

微信小程序 图片等比例缩放

早上在论坛上看到有人写了关于图片等比例缩放的文章,只是判断了图片宽是否大于屏幕宽.我之前在做Android的时候也会遇到图片等比例缩放的问题.应该是用图片宽高比和屏幕宽高比做判断.做个笔记.

老规矩,先上图.

1.图片高宽比小于屏幕高宽比

image.png

2.图片高宽比大于屏幕高宽比

image.png

3.这种其实也是图片高宽比小于屏幕高宽比,但是高宽都大于屏幕高宽.所以不能简单用高宽来判断,应该是用高宽比判断后做缩放.

image.png

上代码:

1.index.wxml


1

2

3

4

5

6

7

<!--index.wxml-->

<!--图片宽大于屏幕宽-->

<image style="width: {{imagewidth}}px; height: {{imageheight}}px;" src="{{imagefirstsrc}}" bindload="imageLoad"></image>

<!--图片高大于屏幕高-->

<!--<image style="width: {{imagewidth}}px; height: {{imageheight}}px;" src="{{imagesecondsrc}}" bindload="imageLoad"></image>-->

<!--图片宽高大于屏幕宽高-->

<!--<image style="width: {{imagewidth}}px; height: {{imageheight}}px;" src="{{imagethirdsrc}}" bindload="imageLoad"></image>-->


2.index.js


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

//index.js

//获取应用实例

var imageUtil = require(&#39;../../utils/util.js&#39;);

var app = getApp()

Page({

 data: {

  imagefirstsrc: &#39;http://bpic.588ku.com/back_pic/00/03/85/1656205138bbe2d.png&#39;,//图片链接

  imagesecondsrc: &#39;http://bpic.588ku.com/back_pic/04/07/63/28581203949ca9d.jpg!/fw/400/quality/90/unsharp/true/compress/true&#39;,//图片链接

  imagethirdsrc:&#39;http://img1.gtimg.com/ent/pics/hv1/13/71/2061/134034643.jpg&#39;,

  imagewidth: 0,//缩放后的宽

  imageheight: 0,//缩放后的高

  

 },

 onLoad: function () {

 },

 imageLoad: function (e) {

  var imageSize = imageUtil.imageUtil(e)

  this.setData({

   imagewidth: imageSize.imageWidth,

   imageheight: imageSize.imageHeight

  })

 }

})


3.util.js


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

//util.js

function imageUtil(e) {

 var imageSize = {};

 var originalWidth = e.detail.width;//图片原始宽

 var originalHeight = e.detail.height;//图片原始高

 var originalScale = originalHeight/originalWidth;//图片高宽比

 console.log(&#39;originalWidth: &#39; + originalWidth)

 console.log(&#39;originalHeight: &#39; + originalHeight)

 //获取屏幕宽高

 wx.getSystemInfo({

  success: function (res) {

   var windowWidth = res.windowWidth;

   var windowHeight = res.windowHeight;

   var windowscale = windowHeight/windowWidth;//屏幕高宽比

   console.log(&#39;windowWidth: &#39; + windowWidth)

   console.log(&#39;windowHeight: &#39; + windowHeight)

   if(originalScale < windowscale){//图片高宽比小于屏幕高宽比

    //图片缩放后的宽为屏幕宽

     imageSize.imageWidth = windowWidth;

     imageSize.imageHeight = (windowWidth * originalHeight) / originalWidth;

   }else{//图片高宽比大于屏幕高宽比

    //图片缩放后的高为屏幕高

     imageSize.imageHeight = windowHeight;

     imageSize.imageWidth = (windowHeight * originalWidth) / originalHeight;

   }

     

  }

 })

 console.log(&#39;缩放后的宽: &#39; + imageSize.imageWidth)

 console.log(&#39;缩放后的高: &#39; + imageSize.imageHeight)

 return imageSize;

}

  

module.exports = {

 imageUtil: imageUtil

}

以上就是本文的全部内容,希望对大家的学习有所帮助。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:微信小程序中 onLoad 功能的详细解析与说明
下一篇:微信小程序内缓存的全面解析
相关文章