日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

关于图片按比例自适应缩放

發布時間:2025/4/14 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 关于图片按比例自适应缩放 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

今天在看視覺規范的時候,大高走過來說 幫他們那邊看一個問題。又是一個關于自適應的問題。不過,我喜歡。瞄了一下,需求是這樣的:用戶上傳照片,照片的尺寸未知;需要生成一個預覽,這個預覽圖 要根據提供給用戶預覽的區域自應用,并且居中;如果圖片太大,需要按比例縮放。如下圖。

?

?

瞄了一下,居中可以用 text-align:center; 來實現。而按比例縮放,利用預設 <img /> 的 width 、height 屬性解決不了。因為用戶圖片可能是很長的,也可能是很寬的。在線上想了一下他們的關系,按條件來判斷是這樣的:

if(實際寬度 > 預覽最大寬度) { 縮放寬度 = 預覽最大寬度 } if(實際高度 > 預覽最大高度) { 縮放高度 = 預覽最大高度 }

但 是這樣會有問題,比如當寬度和高度都被縮放,如果縮放比較不同,圖片就不是按比例縮放,會變得非常丑。為了讓它按比例縮放,就需要做各種判斷了。那這樣就 違背了我們希望程序自動化的原則了。再想想,雖然不喜歡數學,但數學還是很好用的,應該有其他辦法。而既然是按比例縮放,何不用實際圖像和預覽區域寬度作 的比例來計算他們關系?hmmmm… 果然 OK。實際上我們永遠都只需要縮放寬度或高度中的其中一個。因為比例只有大和小種情況。具體的,寫一個函數來實現它吧:

/** * 圖片按比例自適應縮放 * @param img {Element} 用戶上傳的圖片 * @param maxWidth {Number} 預覽區域的最大寬度 * @param maxHeight {Number} 預覽區域的最大高度 */ var resizeImg = function(img, maxWidth, maxHeight){ var w = img.width, h = img.height; // 當圖片比預覽區域小時不做任何改變 if(w < maxWidth && h < maxHeight) return; // 當實際圖片比例大于預覽區域寬高比例時 // 縮放圖片寬度,反之縮放圖片寬度 w/h > maxWidth/maxHeight ? img.width = maxWidth : img.height = maxHeight; };

然后,看一下預覽吧:關于圖片按比例自適應縮放




引文來源??關于圖片按比例自適應縮放 - 幸福收藏夾

轉載于:https://www.cnblogs.com/webqiand/archive/2012/11/29/4609644.html

總結

以上是生活随笔為你收集整理的关于图片按比例自适应缩放的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。