Nuke

 
 

Atvērtā pirmkoda Swift bibliotēka attēlu rediģēšanai un apstrādei

Bezmaksas Swift API, kas ļauj pielāgot attēlu cauruļvadu, mainīt attēlu izmērus, izmantot pielāgotu procesoru, noapaļot attēlu stūrus, lejupielādēt un iekasēt attēlus un tā tālāk.

Nuke ir ļoti noderīgs atvērtā pirmkoda Swift ietvars, kas programmatūras izstrādātājiem ļauj viegli ielādēt un parādīt attēlus savās Swift lietojumprogrammās. Lai lejupielādētu un parādītu attēlus jūsu lietotnēs, ir nepieciešama tikai viena koda rindiņa. Bibliotēkā ir iekļauts arī atbalsts vairākām uzlabotām funkcijām, piemēram, attēla priekšsildīšanai un progresīvai dekodēšanai, kas var ievērojami uzlabot lietotnes veiktspēju, kā arī lietotāja pieredzi.

Nuke API ir ļoti viegli lietojams, un tai ir ļoti progresīva arhitektūra, kas ļauj programmatūras izstrādātājiem domāt par praktiski neierobežotām attēlu apstrādes un pielāgošanas iespējām. Tajā ir iekļauts iebūvēts atbalsts pamata attēlu formātiem, piemēram, JPEG, PNG, HEIF un daudziem citiem. Tā atbalsta arī attēlu kodēšanu un dekodēšanu, izmantojot Swift kodu.

Bibliotēka ir ļoti bagāta ar funkcijām, un tajā ir iekļautas vairākas svarīgas funkcijas attēlu apstrādei, izmantojot Swift komandas, piemēram, attēlu ielāde, attēlu cauruļvada pielāgošana, attēlu izmēru maiņa, filtru, piemēram, Gausa izplūšanas, izmantošana, pielāgota procesora izmantošana, noapaļoti attēla stūri, LRU atmiņa. Kešatmiņa, HTTP diska kešatmiņa, agresīva LRU diska kešatmiņa, attēlu atkārtota ielāde, attēlu animācija, viedā fona dekompresija, lejupielādes atsākšana, prioritāšu pieprasīšana, zemu datu režīms un daudz kas cits.

Previous Next

Darba sākšana ar Nuke 

Ieteicamais Nuke instalēšanas veids ir CocoaPods. Lūdzu, pievienojiet savam Podfile šādas rindiņas

Instalējiet Nuke, izmantojot CocoaPods.

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

Klonējiet jaunākos avotus, izmantojot šo komandu.

Instalējiet Nuke, izmantojot GitHub.

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

Lejupielādējiet un izmantojiet attēlus, izmantojot Swift

Atvērtā pirmkoda Nuke API nodrošina labi organizētu un efektīvu veidu, kā lejupielādēt un izmantot attēlus jūsu Swift lietotnēs. Lai ielādētu attēlus, jānodod vajadzīgā attēla URL un pēc tam jāizsauc atsākšanas metode. Tā fonā lejupielādēs pieprasīto attēlu un informēs atbildes slēgšanu, kad tas būs paveikts.

Skatiet attēlus dažādos veidos Swift lietotnēs

// 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"))
    }
} 

Iepriekšēja attēla ielāde, izmantojot Swift API

Iepriekšēja ielāde ir ļoti noderīga funkcija, kas lietotājiem ļauj lejupielādēt attēlu vai citus datus pirms laika, gaidot to izmantošanu. Programmas var to lejupielādēt un saglabāt lietojumprogrammas tīkla kešatmiņā. Vēlāk, kad jums vajadzēs skatīt attēlu, atbilde uz jūsu pieprasījumu atgriezīsies no kešatmiņas, nevis no tīkla. Atvērtā pirmkoda API Nuke ir iekļāvis atbalstu aizraujošai funkcijai, kas pazīstama kā attēlu iepriekšēja ielāde, izmantojot Swift kodu. Lūdzu, ņemiet vērā, ka sākotnējā ielāde var aizņemt lietotāju datus un radīt papildu spiedienu uz centrālo procesoru, kā arī atmiņu. Lai samazinātu šo spiedienu, kā sākotnējās ielādes galamērķi varat izvēlēties tikai diska kešatmiņu.

GitHub iepriekšēja ielāde un kešatmiņa, izmantojot 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)
    }
} 

Ielādējiet un apmaksājiet attēlus, izmantojot Swift

Attēlu kešatmiņa ir ļoti noderīga metode, kas uzlabo lietojumprogrammu veiktspēju un galalietotāja pieredzi. Atvērtā pirmkoda Nuke API ļauj programmatūras lietotnēm automātiski saglabāt lejupielādēto attēlu kešatmiņu. Nuke paļaujas uz diviem iebūvētiem kešatmiņas slāņiem. Pirmais tiek izmantots apstrādāta attēla glabāšanai, kas ir gatavs parādīšanai. Tas izmanto LRU algoritmu – slaucīšanas laikā vispirms tiek noņemti vismazāk izmantotie ieraksti. Otrajāun tiek izmantota HTTP diska kešatmiņa, lai saglabātu neapstrādātos attēla datus. Tāpat ir iespējams pārbaudīt pieprasītā attēla esamību kešatmiņā.

Lasiet/rakstiet attēlus atmiņā vai diska kešatmiņā, izmantojot 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() 
 Latviski