鍍金池/ 問答/HTML/ js如何改變圖片比例

js如何改變圖片比例

昨天面試,面試官問了我一個(gè)問題,就是用戶上傳了一張不是一比一比例的圖片,你如何把這張圖片設(shè)置成一比一且不變形

回答
編輯回答
別硬撐

1.獲取圖片寬高
2.已寬或高最大一個(gè)為基準(zhǔn)
3.用canvas繪制
4.保存圖片

2017年12月5日 16:36
編輯回答
九年囚

object-fit: cover; 一個(gè)css3屬性搞定

2018年4月14日 04:29
編輯回答
你好胸

只能讓它顯示不完全啊,設(shè)置一個(gè)父元素,寬高等比固定,新建image對(duì)象,在對(duì)象的onload事件里獲取寬高,如果高大設(shè)置寬為父元素寬,反之設(shè)置高為父元素高,添加到父元素

2017年2月19日 02:57
編輯回答
尕筱澄

要讓不是1:1的圖片保存為1:1 只有兩種方法啊。要么圖片截取 要么留白(比如200100的圖片設(shè)置父元素為200200 然后圖片居中上下留白,具體js就像1樓說的 高大設(shè)置寬為父元素寬,反之設(shè)置高為父元素高,添加到父元素)

2017年4月25日 03:17
編輯回答
歆久

!我覺得問的是 圖片截取吧
例如微信上傳頭像,圖片是長(zhǎng)方形1:2的尺寸, 都會(huì)有個(gè)1:1的正方形,來截取圖片
圖片描述

這樣就比較符合你的問題,設(shè)置‘1比1不變形’,設(shè)置的話 感覺只能是圖片截取
至于圖片截取簡(jiǎn)單點(diǎn)就是兩個(gè)方法
1、前端處理-canvas繪圖,進(jìn)行截取
2、后端處理-對(duì)應(yīng)坐標(biāo)給到程序,程序來截圖后,把新的圖片資源反饋給你

祝早日解決問題!

2018年1月10日 01:29
編輯回答
還吻
  • background-size: cover;
  • 前端裁切
  • 后端圖片裁切服務(wù)
  • 圖像算法,調(diào)整比例且視覺不違和
2018年7月22日 06:00