日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
iOS如何實(shí)現(xiàn)圖片裁剪

這篇文章主要介紹iOS如何實(shí)現(xiàn)圖片裁剪,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

網(wǎng)站建設(shè)、成都網(wǎng)站建設(shè)服務(wù)團(tuán)隊(duì)是一支充滿著熱情的團(tuán)隊(duì),執(zhí)著、敏銳、追求更好,是創(chuàng)新互聯(lián)的標(biāo)準(zhǔn)與要求,同時(shí)竭誠(chéng)為客戶提供服務(wù)是我們的理念。創(chuàng)新互聯(lián)把每個(gè)網(wǎng)站當(dāng)做一個(gè)產(chǎn)品來(lái)開(kāi)發(fā),精雕細(xì)琢,追求一名工匠心中的細(xì)致,我們更用心!

iOS 圖片裁剪方法,主要有兩種,一起來(lái)看下。

通過(guò) CGImage 或 CIImage 裁剪

UIImagecgImageciImage屬性,分別可以獲得CGImageCIImage對(duì)象。CGImageCIImage對(duì)象都有cropping(to:)方法,傳入CGRect的參數(shù)表示要裁剪的區(qū)域(采用UIImage的坐標(biāo))。

static func cropImage(_ image: UIImage, withRect rect: CGRect) -> UIImage? {
  if let cgImage = image.cgImage,
    let croppedCgImage = cgImage.cropping(to: rect) {
    return UIImage(cgImage: croppedCgImage)
  } else if let ciImage = image.ciImage {
    let croppedCiImage = ciImage.cropping(to: rect)
    return UIImage(ciImage: croppedCiImage)
  }
  return nil
}

對(duì)CGImage來(lái)說(shuō),傳入的CGRect參數(shù)如果完全不在原圖區(qū)域內(nèi),cropping(to:)方法返回空;如果有部分在原圖區(qū)域內(nèi),cropping(to:)方法返回在原圖區(qū)域部分的CGImage。

通過(guò)位圖(Bitmap)裁剪

通過(guò)位圖重新繪制圖片,也可以獲得裁剪之后的圖片。

static func cropImage(_ image: UIImage, withRect rect: CGRect) -> UIImage? {
  UIGraphicsBeginImageContext(rect.size)
  guard let context = UIGraphicsGetCurrentContext() else { return nil }
  context.translateBy(x: -rect.minX, y: -rect.minY)
  image.draw(at: .zero)
  let croppedImage = UIGraphicsGetImageFromCurrentImageContext()
  UIGraphicsEndImageContext()
  return croppedImage
}

位圖大小為需要裁剪區(qū)域CGRect的大小size。用原圖繪制,為了使裁剪區(qū)域正好在位圖區(qū)域,需要進(jìn)行坐標(biāo)位移context.translateBy(x: -rect.minX, y: -rect.minY)。

如果傳入的CGRect參數(shù)有部分或全部不在原圖區(qū)域內(nèi),則超出原圖區(qū)域的部分也會(huì)被繪制(繪制為透明),這與CGImage的裁剪方法不同。

簡(jiǎn)單試了幾次,發(fā)現(xiàn)通過(guò) CGImage 裁剪的 CPU 占用率比通過(guò)位圖裁剪要低。僅從性能角度考慮,推薦使用前者。如果希望裁剪出來(lái)的圖片不超出原圖區(qū)域,也推薦使用前者。如果需要繪制其他的內(nèi)容(比如其他形狀、顏色,或繪制的內(nèi)容超出原圖區(qū)域),則要使用后者。

以上是“iOS如何實(shí)現(xiàn)圖片裁剪”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


名稱欄目:iOS如何實(shí)現(xiàn)圖片裁剪
文章轉(zhuǎn)載:http://www.dlmjj.cn/article/jidios.html