ホームページ  >  記事  >  WeChat アプレット  >  WeChat ミニ プログラムの画像処理に関する問題の概要

WeChat ミニ プログラムの画像処理に関する問題の概要

巴扎黑
巴扎黑オリジナル
2017-05-21 19:04:312843ブラウズ

要約: 小さなプログラムやページレイアウトの開発プロセス中に、画像の高さと高さが固定されておらず、画像の高さと幅が固定されている場合、画像処理の問題が頻繁に発生します。元の画像が画像で設定された固定の高さと幅に比例していない場合、これは...

小さなプログラムやページレイアウトの開発プロセスでは、画像処理の問題がよく発生します。問題は、たとえば、画像の高さと高さが固定されておらず、画像が固定の高さと幅に設定されている場合、元の画像は画像によって設定された固定の高さと幅に比例せず、画像は変形してしまいます。このとき、次の比例拡大縮小方法を使用すると、画像が変形しないように拡大縮小できます。または、画像のbindloadメソッドを通じて画像の高さと幅を動的に取得し、画像レイアウトの高さと幅が元の画像の高さと幅と等しくなるように画像の高さと幅を動的に設定します。

WeChat ミニ プログラムの画像処理に関する問題の概要
1. 画像比例スケーリングツール//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. 画像コンポーネントを使用して画像を読み込み、画像の高さと幅を動的に取得します。 bindingloadを通して動的に画像の高さと幅を設定するコード


<image bindload="imageLoad" style="width:{{imageWidth}}px;;height:{{imageHeight}}px;" src="../pro.png"/>
index.jsは以下の通りです


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


以上がWeChat ミニ プログラムの画像処理に関する問題の概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。