iOS之圖片裁剪遇到的問(wèn)題(變形)

bg_discountcolor_active@3x.png

如圖我們想把這張圖片拉大, 但保持圓角不變, 肯定不能直接把image放大, swift提供兩個(gè)方法
let imageV = UIImageView(frame: CGRect(x: 50, y: 200, width: width, height: height))
var image = UIImage(named: "bg_discountcolor_active")

  1. image = image?.stretchableImage(withLeftCapWidth: 8, topCapHeight: 8)
    這個(gè)方法保證圖片從上面8, 左邊8的像素點(diǎn)拉伸
  2. image = image?.resizableImage(withCapInsets: UIEdgeInsets(top: 8, left: 8, bottom: 8, right: 8), resizingMode: .stretch)
    這個(gè)方法圈出一個(gè)四面間距都為8的區(qū)域, 拉伸的時(shí)候只有這塊區(qū)域變大, 只有設(shè)置了值的那個(gè)方向的區(qū)域才會(huì)被保護(hù)起來(lái)

但是在實(shí)際使用的時(shí)候遇到的問(wèn)題總是拉伸變形, 甚至?xí)怀鰜?lái)一塊, 查找原因
圖片尺寸11454(@3x)
那么實(shí)際尺寸應(yīng)該是38
18, 所以拉伸的間距縱向不能超過(guò)9, 橫向不能超過(guò)19, 考慮到保存圓角, 這里縱向值應(yīng)該為9, 否則超過(guò)一半, 因?yàn)閕OS的機(jī)制, 超出部分會(huì)向外擴(kuò)張, 造成變形
比如: image = image?.stretchableImage(withLeftCapWidth: 20, topCapHeight: 20)

變形圖.png

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容