Nuke
Nyílt forráskódú Swift Library képszerkesztéshez és -feldolgozáshoz
Ingyenes Swift API, amely lehetővé teszi a képcsatornák testreszabását, a képek átméretezését, az egyéni processzor használatát, a képsarkok lekerekítését, a képek letöltését és beváltását stb.
A Nuke egy nagyon hasznos, nyílt forráskódú Swift keretrendszer, amely lehetővé teszi a szoftverfejlesztők számára, hogy egyszerűen töltsenek be és jelenítsenek meg képeket saját Swift-alkalmazásaikon belül. Csak egy sor kódot igényel a képek letöltéséhez és megjelenítéséhez az alkalmazásokban. A könyvtár számos fejlett funkció támogatását is tartalmazza, például a kép előmelegítését és a progresszív dekódolást, amelyek drámaian javíthatják az alkalmazás teljesítményét és a felhasználói élményt.
A Nuke API nagyon könnyen használható, és nagyon fejlett architektúrájával rendelkezik, amely lehetővé teszi a szoftverfejlesztők számára, hogy gyakorlatilag korlátlan lehetőségekkel gondoljanak a képfeldolgozásra és testreszabásra. Beépített támogatást tartalmaz az alapvető képformátumokhoz, mint például a JPEG, PNG, HEIF és még sok más. Támogatja a képkódolást és a Swift kóddal történő dekódolást is.
A könyvtár nagyon gazdag funkciókban, és számos fontos funkciót tartalmaz a képek Swift parancsokkal történő kezeléséhez, mint például a képek betöltése, a képvezeték testreszabása, a képek átméretezése, szűrők alkalmazása, mint például a Gauss-elmosás, egyéni processzor használata, lekerekített képsarkok, LRU memória Gyorsítótár, HTTP lemezgyorsítótár, agresszív LRU lemezgyorsítótár, képek újratöltése, képanimáció, intelligens háttérkibontás, letöltések folytatása, prioritás kérése, alacsony adatforgalom és még sok más.
Ismerkedés a Nuke-val
A Nuke telepítésének javasolt módja a CocoaPods használata. Kérjük, adja hozzá a következő sorokat a Podfile-hoz
Telepítse a Nuke-ot CocoaPods-on keresztül.
pod "Nuke"
pod "Nuke-Alamofire-Plugin" # optional
pod "Nuke-AnimatedImage-Plugin" # optional
Klónozza a legújabb forrásokat a következő paranccsal.
Telepítse a Nuke-ot a GitHubon keresztül.
$ git https://github.com/kean/Nuke.git
Képek letöltése és használata a Swift segítségével
A nyílt forráskódú Nuke API jól szervezett és hatékony módot biztosít a Swift-alkalmazásokon belüli képek letöltésére és használatára. A képek lekéréséhez át kell adnia a kívánt kép URL-jét, majd meg kell hívnia a resume metódust. A háttérben letölti a kért képet, és értesíti a válaszlezárást, ha kész.
Képek megtekintése különböző módokon belül Swift alkalmazások
// 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"))
}
}
Prefect Image használata Swift API
A prefetching egy nagyon hasznos funkció, amely lehetővé teszi a felhasználók számára, hogy idő előtt töltsék le a képet vagy más adatokat a használat előrehaladása során. Az alkalmazások letölthetik, és tárolhatják az alkalmazás hálózati cache-jában. Később, amikor meg kell nézni a képet, a kérésre adott válasz vissza fog térni a hálózat helyett. A nyílt forráskódú API Nuke tartalmazott támogatást egy izgalmas funkció ismert Prefetching képek segítségével Swift kód. Kérjük, ne feledje, hogy a Prefetching felveszi a felhasználók adatait, és extra nyomást gyakorol a CPU-ra, valamint a memóriára. Ennek a nyomásnak a csökkentése érdekében csak a lemezkazettát választhatja, mint a prefetching célt.
Prefect & Cache GitHub használata 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)
}
}
Töltsön be és váltson be képeket a Swift segítségével
A képgyorsítótárazás egy nagyon hasznos módszer, amely javítja az alkalmazások teljesítményét és a végfelhasználói élményt. A nyílt forráskódú Nuke API lehetővé teszi, hogy a szoftveralkalmazások automatikusan gyorsítótárba helyezzék a letöltött képeket. A Nuke két beépített gyorsítótárazási rétegre támaszkodik. Az első a feldolgozott kép tárolására szolgál, amely készen áll a megjelenítésre. Az LRU algoritmust használja – a sweep során először a legutóbb használt bejegyzéseket távolítja el. A 2.nd HTTP Disk Cache-t használ a feldolgozatlan képadatok tárolására. Lehetőség van a kért kép meglétének ellenőrzésére is a gyorsítótárban.
Read/Write kép a memória vagy a Disk Cache segítségével 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()