Nuke
Swift-bibliotek med åpen kildekode for bilderedigering og -behandling
Gratis Swift API som gjør det mulig å tilpasse bildepipeline, endre størrelse på bilder, bruke en egendefinert prosessor, runde bildehjørner, laste ned og kontanter bilder og så videre.
Nuke er et veldig nyttig Swift-rammeverk med åpen kildekode som gjør det mulig for programvareutviklere å enkelt laste og vise bilder i sine egne Swift-applikasjoner. Det krever bare én kodelinje for å laste ned og vise bilder i appene dine. Biblioteket har også inkludert støtte for flere avanserte funksjoner som bildeforvarming og progressiv dekoding som dramatisk kan forbedre ytelsen til appen og brukeropplevelsen.
Nuke API er veldig enkelt å bruke og har en svært avansert arkitektur som gjør at programvareutviklere kan tenke på praktisk talt ubegrensede muligheter for bildebehandling og tilpasning. Den har inkludert innebygd støtte for grunnleggende bildeformater som JPEG, PNG, HEIF og mange flere. Den støtter også bildekoding og dekoding ved hjelp av Swift-kode.
Biblioteket er svært funksjonsrikt og har inkludert flere viktige funksjoner for å håndtere bildene ved hjelp av Swift-kommandoer, for eksempel last inn bilder, tilpasse bildepipeline, endre størrelse på bilder, bruke filtre som Gaussisk uskarphet, bruke en tilpasset prosessor, runde bildehjørner, LRU-minne Cache, HTTP Disk Cache, Aggressive LRU Disk Cache, Laste inn bilder på nytt, bildeanimasjon, Smart bakgrunnsdekomprimering, gjenoppta nedlastinger, Be om prioritering, Lav datamodus og mange flere.
Komme i gang med Nuke
Den anbefalte måten å installere Nuke på er å bruke CocoaPods. Vennligst legg til følgende linjer i Podfilen din
Installer Nuke via CocoaPods.
pod "Nuke"
pod "Nuke-Alamofire-Plugin" # optional
pod "Nuke-AnimatedImage-Plugin" # optional
Klon de nyeste kildene ved å bruke følgende kommando.
Installer Nuke via GitHub.
$ git https://github.com/kean/Nuke.git
Last ned og bruk bilder med Swift
Åpen kildekode Nuke API gir en godt organisert og effektiv måte å laste ned og bruke bilder i Swift-appene dine. For å hente bildene må du sende inn URL-en til det nødvendige bildet og deretter kalle opp CV-metoden. Det vil laste ned det forespurte bildet i bakgrunnen og vil informere svaravslutningen når det er ferdig.
Se bilder på forskjellige måter inne i Swift-apper
// 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"))
}
}
Forhåndshent bilde ved hjelp av Swift API
Forhåndshenting er en veldig nyttig funksjon som gjør det mulig for brukere å laste ned bildet eller andre data på forhånd i påvente av bruken. Appene kan laste den ned og lagre den i applikasjonens nettverksbuffer. Senere når du trenger å se bildet, vil svaret på forespørselen komme tilbake fra hurtigbufferen i stedet for nettverket. Open source API Nuke har inkludert støtte for en spennende funksjon kjent som Prefetching images ved hjelp av Swift-kode. Husk at Prefetching kan ta opp brukernes data og legge ekstra press på CPU og minne. For å redusere dette trykket kan du velge bare diskbufferen som forhåndshentingsdestinasjon.
Forhåndshent og hurtigbuf GitHub ved hjelp av 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)
}
}
Last inn og kontanter bilder via Swift
Bildebufring er en svært nyttig metode som forbedrer applikasjonsytelsen og sluttbrukeropplevelsen. Åpen kildekode Nuke API gjør det mulig for programvareapper å automatisk cache de nedlastede bildene. Nuke er avhengig av to innebygde caching-lag. Den første brukes til å lagre behandlet bilde, som er klart for visning. Den bruker LRU-algoritmen – de minst nylig brukte oppføringene fjernes først under sveipet. Den andrend bruker HTTP Disk Cache for å lagre de ubehandlede bildedataene. Det er også mulig å sjekke eksistensen av det forespurte bildet i cachen.
Les/skriv bilder i minne eller diskbuffer via 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()