利用 Kingfisher 處理圖片

  • 基礎(chǔ)配置
func KingfisherDefaultOptionsInfoItem() -> [KingfisherOptionsInfoItem] {
    return [.transition(.fade(0.2)), .keepCurrentImageWhileLoading]
}
  • 圓角處理
extension UIImageView {
    func setNetImgWithCornerRadius(
        urlString: String,
        placeholder:UIImage?,
        targetSize: CGSize,
        cornerRadius: CGFloat,
        roundingCorners: RectCorner = .all,
        backgroundColor: UIColor = .clear,
        priority: Float = URLSessionTask.defaultPriority) {
        
        var options = KingfisherDefaultOptionsInfoItem()
        options.append(.downloadPriority(priority))
        let resize = ResizingImageProcessor(referenceSize: targetSize, mode: .aspectFill)
        let crop = CroppingImageProcessor(size: targetSize)
        let round = RoundCornerImageProcessor(cornerRadius: cornerRadius, roundingCorners: roundingCorners, backgroundColor: backgroundColor)
        let processor = (resize >> crop) >> round
        options.append(.processor(processor))
        
        let url = URL(string: urlString)
        kf.setImage(with: url, placeholder: placeholder, options: options, progressBlock: nil, completionHandler: nil)
    }
}
  • 毛玻璃特效
extension UIImageView {
    func setNetImgWithBlur(urlString: String,
                           placeholder:UIImage?,
                           blurRadius: CGFloat,
                           tintColor: UIColor,
                           priority: Float = URLSessionTask.defaultPriority) {
        
        var options = KingfisherDefaultOptionsInfoItem()
        options.append(.downloadPriority(priority))
        
        let processor = BlurImageProcessor(blurRadius: blurRadius)
        let processor2 = TintImageProcessor(tint: tintColor)
        options.append(.processor(processor >> processor2))
        
        let url = URL(string: urlString)
        kf.setImage(with: url,
                         placeholder: placeholder,
                         options: options,
                         progressBlock: nil,
                         completionHandler: nil)
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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