Maison > Applet WeChat > Développement de mini-programmes > Résumé des problèmes rencontrés lors du traitement des images dans les mini-programmes WeChat

Résumé des problèmes rencontrés lors du traitement des images dans les mini-programmes WeChat

高洛峰
Libérer: 2017-03-17 14:44:29
original
2777 Les gens l'ont consulté

Lors du processus de développement de petits programmes et de mise en page, nous rencontrons souvent des problèmes de traitement d'image, par exemple, si l'image n'a pas une hauteur et une hauteur fixes, mais que l'image est définie sur une hauteur et une largeur fixes, alors le original Si l'image n'est pas proportionnelle à la hauteur et à la largeur fixes définies par l'image, l'image sera déformée et peu claire. À ce stade, vous pouvez utiliser la méthode de mise à l'échelle proportionnelle suivante pour redimensionner l'image afin qu'elle ne se déforme pas. Ou obtenez dynamiquement la hauteur et la largeur de l'image via la méthode bindload de l'image, et définissez dynamiquement la hauteur et la largeur de l'image de sorte que la hauteur et la largeur de la disposition de l'image soient égales à la hauteur et à la largeur de l'image d'origine.

Résumé des problèmes rencontrés lors du traitement des images dans les mini-programmes WeChat

Outil de mise à l'échelle proportionnelle d'image

//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;
Copier après la connexion


Utilisez le composant image pour charger des images et utiliser dynamiquement bindload Obtenez la hauteur et la largeur de l'image, et définissez dynamiquement la hauteur et la largeur de l'image

<image bindload="imageLoad" style="width:{{imageWidth}}px;;height:{{imageHeight}}px;" src="../pro.png"/>
Copier après la connexion

Le code index.js est le suivant

import Util from &#39;../common/Util&#39;;  
   
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});    
  } 
})
Copier après la connexion


Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal