Nuke
Open Source Swift Library pro úpravy a zpracování obrázků
Bezplatné rozhraní Swift API, které umožňuje přizpůsobovat kanál obrázků, měnit velikost obrázků, používat vlastní procesor, zaoblovat rohy obrázků, stahovat a vydělávat obrázky atd.
Nuke je velmi užitečný open source rámec Swift, který umožňuje vývojářům softwaru snadno načítat a zobrazovat obrázky uvnitř jejich vlastních aplikací Swift. Ke stažení a zobrazení obrázků ve vašich aplikacích vyžaduje pouze jeden řádek kódu. Knihovna také obsahuje podporu pro několik pokročilých funkcí, jako je předehřívání obrazu a progresivní dekódování, které mohou dramaticky zvýšit výkon aplikace i uživatelský zážitek.
Nuke API se velmi snadno používá a má velmi pokročilou architekturu, která umožňuje vývojářům softwaru myslet na prakticky neomezené možnosti zpracování obrazu a přizpůsobení. Obsahuje vestavěnou podporu pro základní obrazové formáty, jako jsou JPEG, PNG, HEIF a mnoho dalších. Podporuje také kódování a dekódování obrázků pomocí kódu Swift.
Knihovna je velmi bohatá na funkce a obsahuje několik důležitých funkcí pro manipulaci s obrázky pomocí příkazů Swift, jako je načítání obrázků, přizpůsobení obrazového potrubí, změna velikosti obrázků, použití filtrů, jako je Gaussovské rozostření, použití vlastního procesoru, zaoblení rohů obrázků, paměť LRU Cache, HTTP Disk Cache, Aggressive LRU Disk Cache, Reloading Images, Image animace, Inteligentní dekomprese pozadí, Obnovení stahování, Request priority, Low data mode a mnoho dalších.
Začínáme s Nuke
Doporučený způsob instalace Nuke je použití CocoaPods. Přidejte prosím následující řádky do svého Podsouboru
Nainstalujte Nuke přes CocoaPods.
pod "Nuke"
pod "Nuke-Alamofire-Plugin" # optional
pod "Nuke-AnimatedImage-Plugin" # optional
Naklonujte nejnovější zdroje pomocí následujícího příkazu.
Nainstalujte Nuke přes GitHub.
$ git https://github.com/kean/Nuke.git
Stahujte a používejte obrázky pomocí Swift
Open source Nuke API poskytuje dobře organizovaný a efektivní způsob stahování a používání obrázků v aplikacích Swift. Chcete-li načíst obrázky, musíte předat adresu URL požadovaného obrázku a poté zavolat metodu obnovení. Stáhne požadovaný obrázek na pozadí a po dokončení bude informovat o uzavření odpovědi.
Zobrazit obrázky v různých směrech uvnitř 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"))
}
}
Prefect Image pomocí Swift API
Prefetching je velmi užitečná funkce, která umožňuje uživatelům stahovat obraz nebo další data před časem v očekávání jeho použití. Aplikace je možné stáhnout a uložit jej do mezipaměti aplikace. Později, když potřebujete zobrazit obrázek odpověď na vaši žádost se vrátí z cache namísto sítě. Otevřený zdroj API Nuke obsahuje podporu pro vzrušující funkci známý jako Prefetching obrázků pomocí Swift kódu. Nezapomeňte, že Prefetching může provádět data uživatelů a dát další tlak na CPU, stejně jako paměť. Chcete-li snížit tento tlak, můžete zvolit pouze mezipaměť disku jako přednabídající cíl.
Prefect & Cache GitHub pomocí 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)
}
}
Načíst a vyplatit obrázky přes Swift
Ukládání obrázků do mezipaměti je velmi užitečná metoda, která zlepšuje výkon aplikací a zkušenost koncového uživatele. Open source Nuke API umožňuje softwarovým aplikacím automaticky ukládat stažené obrázky do mezipaměti. Nuke spoléhá na dvě vestavěné mezipaměti. První slouží k uložení zpracovaného obrázku, který je připraven k zobrazení. Využívá algoritmus LRU – během rozmítání jsou nejprve odstraněny nejméně nedávno použité položky. 2nd používá HTTP Disk Cache k ukládání nezpracovaných obrazových dat. Je také možné zkontrolovat existenci požadovaného obrázku v mezipaměti.
Read/Write obrázků v paměti nebo disk Cache přes 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()