![](https://products-qa.fileformat.com/az/image/swift/nuke/header-image.png)
Nuke
Şəkil Redaktə və Emal üçün Açıq Mənbəli Swift Kitabxanası
Şəkil boru xəttini fərdiləşdirməyə, şəkillərin ölçüsünü dəyişməyə, fərdi prosessordan istifadə etməyə, şəkil künclərini yuvarlaqlaşdırmağa, yükləməyə, şəkilləri nağdlaşdırmağa və s. imkan verən pulsuz Swift API.
Nuke çox faydalı açıq mənbəli Swift çərçivəsidir və proqram tərtibatçılarına öz Swift proqramlarında şəkilləri asanlıqla yükləməyə və göstərməyə imkan verir. Tətbiqlərinizdə şəkilləri endirmək və göstərmək üçün sadəcə bir kod sətri tələb olunur. Kitabxana həmçinin, tətbiqin işini, eləcə də istifadəçi təcrübəsini dramatik şəkildə artıra bilən təsvirin əvvəlcədən qızdırılması və mütərəqqi dekodlaşdırma kimi bir neçə qabaqcıl funksiyaya dəstək daxildir.
Nuke API-dən istifadə etmək çox asandır və proqram tərtibatçılarına təsvirin işlənməsi və fərdiləşdirilməsi üçün praktiki olaraq qeyri-məhdud imkanlar haqqında düşünməyə imkan verən çox təkmil arxitekturaya malikdir. O, JPEG, PNG, HEIF və daha çox kimi əsas şəkil formatları üçün daxili dəstəyi ehtiva edir. O, həmçinin Swift kodundan istifadə edərək təsvirin kodlaşdırılmasını və dekodlanmasını dəstəkləyir.
Kitabxana çox xüsusiyyətlərlə zəngindir və şəkilləri yükləmək, şəkil boru xəttini fərdiləşdirmək, şəkillərin ölçüsünü dəyişmək, Qauss bulanıqlığı kimi filtrləri tətbiq etmək, xüsusi prosessordan istifadə etmək, dairəvi şəkil küncləri, LRU yaddaşı kimi Swift əmrlərindən istifadə edərək şəkilləri idarə etmək üçün bir sıra vacib xüsusiyyətləri özündə cəmləşdirir. Keş, HTTP Disk Keşi, Aqressiv LRU Disk Keşi, Şəkillərin yenidən yüklənməsi, şəkil animasiyası, Ağıllı fon dekompressiyası, yükləmələr davam etdirilir, prioritetləşdirmə tələbi, aşağı məlumat rejimi və s.
Nuke ilə işə başlamaq
Nuke quraşdırmanın tövsiyə olunan yolu CocoaPods-dan istifadə etməkdir. Podfaylınıza aşağıdakı sətirləri əlavə edin
CocoaPods vasitəsilə Nuke quraşdırın.
pod "Nuke"
pod "Nuke-Alamofire-Plugin" # optional
pod "Nuke-AnimatedImage-Plugin" # optional
Aşağıdakı əmrdən istifadə edərək ən son mənbələri klonlayın.
GitHub vasitəsilə Nuke quraşdırın.
$ git https://github.com/kean/Nuke.git
Swift istifadə edərək şəkilləri yükləyin və istifadə edin
Açıq mənbəli Nuke API Swift proqramlarınız daxilində şəkilləri yükləmək və istifadə etmək üçün yaxşı təşkil edilmiş və effektiv üsul təqdim edir. Şəkilləri əldə etmək üçün tələb olunan şəklin URL-ni keçməli və sonra CV metodunu çağırmalısınız. O, tələb olunan şəkli fonda endirəcək və tamamlandıqda cavabın bağlanması barədə məlumat verəcəkdir.
Swift Tətbiqlərində Şəkillərə Fərqli Yollarda Baxın
// 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 istifadə edərək Şəkili əvvəlcədən götürün
Əvvəlcədən gətirmə istifadəçilərə şəkil və ya digər məlumatları istifadəsini gözləyərək vaxtından əvvəl yükləməyə imkan verən çox faydalı xüsusiyyətdir. Proqramlar onu yükləyə və proqramın şəbəkə keşində saxlaya bilər. Daha sonra şəkilə baxmaq lazım olduqda sorğunuza cavab şəbəkə əvəzinə keşdən qayıdacaq. Açıq mənbəli API Nuke, Swift kodundan istifadə edərək şəkillərin əvvəlcədən götürülməsi kimi tanınan maraqlı xüsusiyyət üçün dəstəyi ehtiva edir. Xahiş edirik unutmayın ki, Öncədən yükləmə istifadəçilərin məlumatlarını götürə və CPU və yaddaşa əlavə təzyiq göstərə bilər. Bu təzyiqi azaltmaq üçün əvvəlcədən təyinat yeri kimi yalnız disk keşini seçə bilərsiniz.
Swift API istifadə edərək GitHub-u əvvəlcədən götürün və önbelleğe alın
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 vasitəsilə Şəkilləri Yükləyin və Nağdlaşdırın
Şəkil keşləmə tətbiq performansını və son istifadəçi təcrübəsini yaxşılaşdıran çox faydalı bir üsuldur. Açıq mənbəli Nuke API proqram proqramlarına endirilmiş şəkilləri avtomatik keşləməyə imkan verir. Nuke iki daxili keşləmə qatına əsaslanır. Birincisi ekrana hazır olan işlənmiş təsviri saxlamaq üçün istifadə olunur. O, LRU alqoritmindən istifadə edir – ən az istifadə edilən qeydlər tarama zamanı əvvəlcə silinir. 2nd emal olunmamış şəkil məlumatlarını saxlamaq üçün HTTP Disk Cache-dən istifadə edir. Keş yaddaşda tələb olunan şəklin mövcudluğunu yoxlamaq da mümkündür.
Swift API vasitəsilə Yaddaşda və ya Disk Keşində Şəkilləri Oxuyun/Yazın
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()