js實現圖片的等比例縮放


js實現圖片的等比例縮放

CreateTime--2018年3月6日14:04:18

Author:Marydon

1.代碼展示

/**
 * 圖片按寬高比例進行自動縮放
 * @param ImgObj
 *     縮放圖片源對象
 * @param maxWidth
 *     允許縮放的最大寬度
 * @param maxHeight
 *     允許縮放的最大高度
 * @usage 
 *     調用:<img src="圖片" onload="javascript:DrawImage(this,100,100)">
 */
function DrawImage(ImgObj, maxWidth, maxHeight){
    var image = new Image();
    //原圖片原始地址(用於獲取原圖片的真實寬高,當<img>標簽指定了寬、高時不受影響)
    image.src = ImgObj.src;
    // 用於設定圖片的寬度和高度
    var tempWidth;
    var tempHeight;
    
    if(image.width > 0 && image.height > 0){
        //原圖片寬高比例 大於 指定的寬高比例,這就說明了原圖片的寬度必然 > 高度
        if (image.width/image.height >= maxWidth/maxHeight) {
            if (image.width > maxWidth) {
                tempWidth = maxWidth;
                // 按原圖片的比例進行縮放
                tempHeight = (image.height * maxWidth) / image.width;
            } else {
                // 按原圖片的大小進行縮放
                tempWidth = image.width;
                tempHeight = image.height;
            }
        } else {// 原圖片的高度必然 > 寬度
            if (image.height > maxHeight) {  
                tempHeight = maxHeight;
                // 按原圖片的比例進行縮放
                tempWidth = (image.width * maxHeight) / image.height;      
            } else {
                // 按原圖片的大小進行縮放
                tempWidth = image.width;
                tempHeight = image.height;
            }
        }
        // 設置頁面圖片的寬和高
        ImgObj.height = tempHeight;
        ImgObj.width = tempWidth;
        // 提示圖片的原來大小
        ImgObj.alt = image.width + "×" + image.height;
    }
}

2.測試

<body>
    <h2>原圖片</h2>
    <img src="6.png" alt="500x3500"/>
    <h2>按比例縮放后的圖片</h2>
    <img src="6.png" onload="javascript:DrawImage(this,145,100)"/>    
</body>

3.效果展示

 

說明:還有一種最簡單的方法,就是:給圖片只設置寬度或高度,頁面加載的時候,瀏覽器會自動對圖片進行等比縮放或放大。 

 相關推薦:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM