Heim  >  Artikel  >  WeChat-Applet  >  Zusammenfassung der Probleme im Zusammenhang mit der Bildverarbeitung in WeChat-Miniprogrammen

Zusammenfassung der Probleme im Zusammenhang mit der Bildverarbeitung in WeChat-Miniprogrammen

高洛峰
高洛峰Original
2018-05-16 16:50:138102Durchsuche

Im Entwicklungsprozess des Miniprogramms stoßen wir im Seitenlayout oft auf einige Bild-Verarbeitungsprobleme, zum Beispiel, wenn das Bild ist nicht feste Höhe und Höhe, aber das Bild ist auf eine feste Höhe und Breite eingestellt. Zu diesem Zeitpunkt ist das Originalbild nicht proportional zur festen Höhe und Breite des Bildes, wodurch das Bild verformt und unklar wird. Zu diesem Zeitpunkt können Sie die folgende proportionale Skalierungsmethode verwenden, um das Bild so zu skalieren, dass es nicht verformt wird. Oder erhalten Sie die Höhe und Breite des Bildes dynamisch über die Methode bindload des Bildes und legen Sie die Höhe und Breite des Bildes dynamisch fest, sodass die Höhe und Breite des Bildlayouts gleich der Höhe und Breite sind Breite des Originalbildes.

1. Bildskalierungstool

[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. Verwenden Sie die Bildkomponente, um das Bild zu laden, die Höhe und Breite des Bildes dynamisch über Bindload abzurufen und die Höhe und Breite des Bildes dynamisch festzulegen

[AppleScript]

8386d59e559bb842ee1f84b6c4fbd80d

Der index.js-Code lautet wie folgt

[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});    
  }  
})

Das obige ist der detaillierte Inhalt vonZusammenfassung der Probleme im Zusammenhang mit der Bildverarbeitung in WeChat-Miniprogrammen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn