Nuke
Perpustakaan Swift Sumber Terbuka untuk Penyuntingan & Pemprosesan Imej
API Swift percuma yang membolehkan untuk menyesuaikan saluran paip imej, mengubah saiz imej, menggunakan pemproses tersuai, sudut imej bulat, muat turun dan imej tunai & sebagainya.
Nuke ialah rangka kerja Swift sumber terbuka yang sangat berguna yang membolehkan pembangun perisian memuatkan dan memaparkan imej dengan mudah di dalam aplikasi Swift mereka sendiri. Ia memerlukan hanya satu baris kod untuk memuat turun dan memaparkan imej dalam apl anda. Perpustakaan juga telah menyertakan sokongan untuk beberapa ciri lanjutan seperti prapemanasan imej dan penyahkodan progresif yang boleh meningkatkan prestasi aplikasi serta pengalaman pengguna secara dramatik.
API Nuke sangat mudah digunakan dan mempunyai seni bina yang sangat maju yang membolehkan pembangun perisian memikirkan kemungkinan yang hampir tidak terhad untuk pemprosesan dan penyesuaian imej. Ia telah menyertakan sokongan terbina dalam untuk format imej asas seperti JPEG, PNG, HEIF dan banyak lagi. Ia juga menyokong pengekodan dan penyahkodan imej menggunakan kod Swift.
Perpustakaan ini sangat kaya dengan ciri dan telah memasukkan beberapa ciri penting untuk mengendalikan imej mereka menggunakan arahan Swift, seperti memuatkan imej, menyesuaikan saluran paip imej, mengubah saiz imej, menggunakan penapis seperti Gaussian blur, menggunakan pemproses tersuai, sudut imej bulat, Memori LRU Cache, Cache Cakera HTTP, Cache Cakera LRU Agresif, Memuatkan Semula Imej, animasi imej, Penyahmampatan latar belakang pintar, muat turun Menyambung semula, Meminta keutamaan, Mod data rendah dan banyak lagi.
Bermula dengan Nuke
Cara yang disyorkan untuk memasang Nuke adalah menggunakan CocoaPods. Sila tambah baris berikut pada Podfile anda
Pasang Nuke melalui CocoaPods.
pod "Nuke"
pod "Nuke-Alamofire-Plugin" # optional
pod "Nuke-AnimatedImage-Plugin" # optional
Klon sumber terkini menggunakan arahan berikut.
Pasang Nuke melalui GitHub.
$ git https://github.com/kean/Nuke.git
Muat turun & Gunakan Imej menggunakan Swift
API Nuke sumber terbuka menyediakan cara yang teratur dan berkesan untuk memuat turun dan menggunakan imej dalam apl Swift anda. Untuk mengambil imej anda perlu lulus URL imej yang diperlukan dan kemudian memanggil kaedah resume. Ia akan memuat turun imej yang diminta di latar belakang dan akan memaklumkan penutupan respons apabila ia selesai.
Lihat Imej dalam Cara Berbeza dalam Swift Apps
// 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"))
}
}
Prefetch Imej menggunakan API Swift
Prefetching ialah ciri yang sangat berguna yang membolehkan pengguna memuat turun imej atau data lain lebih awal daripada masa untuk menjangkakan penggunaannya. Apl boleh memuat turun dan menyimpannya dalam cache rangkaian aplikasi. Kemudian apabila anda perlu melihat imej, respons kepada permintaan anda akan kembali daripada cache dan bukannya rangkaian. API Nuke sumber terbuka telah menyertakan sokongan untuk ciri menarik yang dikenali sebagai Prefetching imej menggunakan kod Swift. Sila ingat bahawa Prefetching boleh mengambil data pengguna dan memberi tekanan tambahan pada CPU serta memori. Untuk mengurangkan tekanan ini, anda boleh memilih hanya cache cakera sebagai destinasi prefetching.
Prefetch & Cache GitHub menggunakan API Swift
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)
}
}
Muatkan dan Tunai Imej melalui Swift
Caching imej ialah kaedah yang sangat berguna yang meningkatkan prestasi aplikasi dan pengalaman pengguna akhir. API Nuke sumber terbuka membolehkan aplikasi perisian untuk secara automatik cache imej yang dimuat turun. Nuke bergantung pada dua lapisan caching terbina dalam. Yang pertama digunakan untuk menyimpan imej yang diproses, yang sedia untuk dipaparkan. Ia menggunakan algoritma LRU - entri yang paling kurang digunakan baru-baru ini dikeluarkan terlebih dahulu semasa sapuan. Yang ke-2nd menggunakan Cache Cakera HTTP untuk menyimpan data imej yang tidak diproses. Ia juga mungkin untuk menyemak kewujudan imej yang diminta dalam cache.
Baca/Tulis Imej dalam Memori atau Cache Cakera melalui API Swift
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()