Nuke

 
 

ไลบรารี Swift แบบโอเพ่นซอร์สสำหรับการแก้ไขและประมวลผลภาพ

Swift API ฟรีที่อนุญาตให้ปรับแต่งไปป์ไลน์รูปภาพ ปรับขนาดรูปภาพ ใช้โปรเซสเซอร์แบบกำหนดเอง มุมของรูปภาพที่กลม ดาวน์โหลด และเงินสดรูปภาพ และอื่นๆ

Nuke เป็นกรอบ Open Source Swift ที่มีประโยชน์มากซึ่งช่วยให้ผู้พัฒนาซอฟต์แวร์สามารถโหลดและแสดงภาพภายในแอพพลิเคชั่น Swift ของตนเองได้อย่างง่ายดาย ต้องใช้รหัสเพียงบรรทัดเดียวในการดาวน์โหลดและแสดงภาพในแอปของคุณ ห้องสมุดยังรวมถึงการสนับสนุนสําหรับคุณสมบัติขั้นสูงหลายอย่างเช่นการนําเสนอภาพและการถอดรหัสแบบก้าวหน้าที่สามารถเพิ่มประสิทธิภาพของแอพและประสบการณ์ของผู้ใช้

Nuke API ใช้งานง่ายมากและมีสถาปัตยกรรมขั้นสูงที่ช่วยให้นักพัฒนาซอฟต์แวร์นึกถึงความเป็นไปได้ที่แทบไม่จำกัดสำหรับการประมวลผลภาพและการปรับแต่ง รวมการรองรับในตัวสำหรับรูปแบบภาพพื้นฐาน เช่น JPEG, PNG, HEIF และอื่นๆ อีกมากมาย นอกจากนี้ยังรองรับการเข้ารหัสและถอดรหัสภาพโดยใช้รหัส Swift

ไลบรารีมีคุณลักษณะมากมายและได้รวมคุณสมบัติที่สําคัญหลายประการสําหรับการจัดการภาพของพวกเขาโดยใช้คําสั่ง Swift เช่นภาพโหลดการปรับแต่งท่อภาพ Resression, การใช้ฟิลเตอร์เช่นภาพเบลอรัสเซีย, โดยใช้หน่วยประมวลผลแบบ HTRgress

Previous Next

เริ่มต้นกับ Nuke 

วิธีที่แนะนำในการติดตั้ง Nuke คือการใช้ CocoaPods โปรดเพิ่มบรรทัดต่อไปนี้ใน Podfile . ของคุณ

ติดตั้ง Nuke ผ่าน CocoaPods

pod "Nuke"
pod "Nuke-Alamofire-Plugin" # optional
pod "Nuke-AnimatedImage-Plugin" # optional

โคลนแหล่งล่าสุดโดยใช้คำสั่งต่อไปนี้

ติดตั้ง Nuke ผ่าน GitHub

$ git https://github.com/kean/Nuke.git 

ดาวน์โหลดและใช้รูปภาพโดยใช้ Swift

Nuke API แบบโอเพนซอร์สมอบวิธีการดาวน์โหลดและใช้งานรูปภาพภายในแอพ Swift ที่มีการจัดการที่ดีและมีประสิทธิภาพ ในการดึงรูปภาพ คุณต้องส่ง URL ของรูปภาพที่ต้องการ แล้วเรียกวิธีการดำเนินการต่อ มันจะดาวน์โหลดรูปภาพที่ร้องขอในพื้นหลังและจะแจ้งการปิดการตอบสนองเมื่อเสร็จสิ้น

ดูรูปภาพในรูปแบบต่างๆภายในแอป Swift

// Load images directly using Async/Await
func loadImage() async throws {
    let response = try await pipeline.image(for: url, delegate: self)
}
// Use UI components provided by NukeUI mode
struct ContainerView: View {
    var body: some View {
        LazyImage(url: URL(string: "https://example.com/image.jpeg"))
    }
} 

ภาพประจําจังหวัดโดยใช้ Swift API

Prefetching เป็นคุณลักษณะที่มีประโยชน์มากที่ช่วยให้ผู้ใช้สามารถดาวน์โหลดภาพหรือข้อมูลอื่น ๆ ก่อนเวลาที่จะคาดว่าจะใช้งาน แอปสามารถดาวน์โหลดและเก็บไว้ในแคชเครือข่ายของแอปพลิเคชัน หลังจากนั้นเมื่อคุณต้องการดูภาพการตอบสนองต่อคําขอของคุณจะกลับมาจากแคชแทนเครือข่าย แหล่งที่มาเปิด API Nuke ได้รวมการสนับสนุนสําหรับคุณลักษณะที่น่าตื่นเต้นที่เรียกว่า Prefetching ภาพโดยใช้รหัส Swift โปรดจําไว้ว่า Prefetching สามารถใช้ข้อมูลของผู้ใช้และใส่ความดันพิเศษบน CPU และหน่วยความจํา เพื่อลดความดันนี้คุณสามารถเลือกเฉพาะแคชดิสก์เป็นปลายทางที่ดึงข้อมูลไว้ล่วงหน้า

จังหวัดและแคช GitHub โดยใช้ Swift API

inal class PrefetchingDemoViewController: UICollectionViewController {
    private let prefetcher = ImagePrefetcher()
    private var photos: [URL] = []
    override func viewDidLoad() {
        super.viewDidLoad()
        collectionView?.isPrefetchingEnabled = true
        collectionView?.prefetchDataSource = self
    }
}
extension PrefetchingDemoViewController: UICollectionViewDataSourcePrefetching {
    func collectionView(_ collectionView: UICollectionView, prefetchItemsAt indexPaths: [IndexPath]) {
        let urls = indexPaths.map { photos[$0.row] }
        prefetcher.startPrefetching(with: urls)
    }
    func collectionView(_ collectionView: UICollectionView, cancelPrefetchingForItemsAt indexPaths: [IndexPath]) {
        let urls = indexPaths.map { photos[$0.row] }
        prefetcher.stopPrefetching(with: urls)
    }
} 

โหลดรูปภาพและเงินสดผ่าน Swift

การแคชรูปภาพเป็นวิธีที่มีประโยชน์มากที่ช่วยปรับปรุงประสิทธิภาพของแอปพลิเคชันและประสบการณ์ของผู้ใช้ปลายทาง Nuke API แบบโอเพ่นซอร์สช่วยให้แอปซอฟต์แวร์แคชรูปภาพที่ดาวน์โหลดโดยอัตโนมัติ Nuke อาศัยเลเยอร์แคชในตัวสองชั้น อันแรกใช้สำหรับเก็บภาพที่ประมวลผลซึ่งพร้อมสำหรับการแสดงผล ใช้อัลกอริธึม LRU – รายการที่ใช้น้อยที่สุดจะถูกลบออกก่อนในระหว่างการกวาด อันที่ 2nd ใช้ HTTP Disk Cache เพื่อเก็บข้อมูลภาพที่ยังไม่ได้ประมวลผล นอกจากนี้ยังสามารถตรวจสอบการมีอยู่ของภาพที่ร้องขอในแคช

Read/Write รูปภาพในหน่วยความจําหรือแคชดิสก์ผ่าน Swift API

let cache = pipeline.cache
let request = ImageRequest(url: URL(string: "https://example.com/image.jpeg")!)
cache.cachedImage(for: request) // From any cache layer
cache.cachedImage(for: request, caches: [.memory]) // Only memory
cache.cachedImage(for: request, caches: [.disk]) // Only disk (decodes data)
let data = cache.cachedData(for: request)
cache.containsData(for: request) // Fast contains check 
// Stores image in the memory cache and stores an encoded
// image in the disk cache
cache.storeCachedImage(ImageContainer(image: image), for: request)
cache.removeCachedImage(for: request)
cache.removeAll() 
 ไทย