![](https://products-qa.fileformat.com/pl/image/swift/nuke/header-image.png)
Nuke
Biblioteka Open Source Swift do edycji i przetwarzania obrazów
Darmowy interfejs API Swift, który umożliwia dostosowywanie potoku obrazów, zmianę rozmiaru obrazów, używanie niestandardowego procesora, zaokrąglanie rogów obrazu, pobieranie, obrazy gotówkowe itd.
Nuke to bardzo przydatna platforma Swift o otwartym kodzie źródłowym, która umożliwia programistom łatwe ładowanie i wyświetlanie obrazów we własnych aplikacjach Swift. Pobieranie i wyświetlanie obrazów w aplikacjach wymaga tylko jednego wiersza kodu. Biblioteka zawiera również obsługę kilku zaawansowanych funkcji, takich jak wstępne podgrzewanie obrazu i progresywne dekodowanie, które mogą znacznie poprawić wydajność aplikacji, a także wrażenia użytkownika.
Nuke API jest bardzo łatwe w użyciu i ma bardzo zaawansowaną architekturę, która pozwala programistom myśleć o praktycznie nieograniczonych możliwościach przetwarzania i dostosowywania obrazu. Zawiera wbudowaną obsługę podstawowych formatów graficznych, takich jak JPEG, PNG, HEIF i wielu innych. Obsługuje również kodowanie i dekodowanie obrazu za pomocą kodu Swift.
Biblioteka jest bardzo bogata w funkcje i zawiera kilka ważnych funkcji do obsługi obrazów za pomocą poleceń Swift, takich jak ładowanie obrazów, dostosowywanie potoku obrazu, zmiana rozmiaru obrazów, stosowanie filtrów, takich jak rozmycie gaussowskie, korzystanie z niestandardowego procesora, okrągłe rogi obrazu, pamięć LRU Pamięć podręczna, pamięć podręczna dysku HTTP, agresywna pamięć podręczna dysku LRU, ponowne ładowanie obrazów, animacja obrazu, inteligentna dekompresja w tle, wznawianie pobierania, nadawanie priorytetów żądaniom, tryb niskiego zużycia danych i wiele innych.
Pierwsze kroki z Nuke
Zalecanym sposobem instalacji Nuke jest użycie CocoaPods. Proszę dodać następujące wiersze do swojego pliku Podfile
Zainstaluj Nuke przez CocoaPods.
pod "Nuke"
pod "Nuke-Alamofire-Plugin" # optional
pod "Nuke-AnimatedImage-Plugin" # optional
Sklonuj najnowsze źródła za pomocą następującego polecenia.
Zainstaluj Nuke przez GitHub.
$ git https://github.com/kean/Nuke.git
Pobierz i używaj obrazów za pomocą Swift
Interfejs API Nuke o otwartym kodzie źródłowym zapewnia dobrze zorganizowany i skuteczny sposób pobierania i używania obrazów w aplikacjach Swift. Aby pobrać obrazy, musisz podać adres URL wymaganego obrazu, a następnie wywołać metodę resume. Pobierze żądany obraz w tle i poinformuje o zamknięciu odpowiedzi, gdy to się skończy.
Zobacz zdjęcia w różnych sposobów wewnątrz aplikacji Swift
// 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"))
}
}
Prefektura obrazu przy użyciu Swift API
Prefetching to bardzo przydatna cecha, która umożliwia użytkownikom pobieranie obrazu lub innych danych przed czasem w oczekiwaniu na jego wykorzystanie. Aplikacje mogą go pobrać i przechowywać w pamięci podręcznej aplikacji. Później, gdy trzeba wyświetlić obraz odpowiedź na Twoje życzenie wróci z pamięci podręcznej zamiast sieci. Otwarte źródło API Nuke zawiera wsparcie dla ekscytującej funkcji znanej jako Prefetching obrazy przy użyciu kodu Swift. Należy pamiętać, że Prefetching może gromadzić dane użytkowników i wywierać dodatkowy nacisk na procesor oraz pamięć. Aby zmniejszyć to ciśnienie można wybrać tylko pamięci podręcznej jako wstępnego przeznaczenia.
Prefektura & Cache GitHub przy użyciu 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)
}
}
Załaduj i wyślij obrazy za pomocą Swift
Buforowanie obrazu to bardzo przydatna metoda, która poprawia wydajność aplikacji i doświadczenie użytkownika końcowego. Interfejs API Nuke o otwartym kodzie źródłowym umożliwia aplikacjom automatyczne buforowanie pobranych obrazów. Nuke opiera się na dwóch wbudowanych warstwach pamięci podręcznej. Pierwszy służy do przechowywania przetworzonego obrazu, który jest gotowy do wyświetlenia. Wykorzystuje algorytm LRU – najrzadziej używane wpisy są usuwane jako pierwsze podczas przeszukiwania. Drugidrugi używa pamięci podręcznej dysku HTTP do przechowywania nieprzetworzonych danych obrazu. Możliwe jest również sprawdzenie istnienia żądanego obrazu w pamięci podręcznej.
Read/Write Zdjęcia w pamięci lub pamięci podręcznej przez 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()