Nuke
Бібліотека Swift з відкритим кодом для редагування та обробки зображень
Безкоштовний API Swift, який дозволяє налаштовувати конвеєр зображень, змінювати розміри зображень, використовувати спеціальний процесор, закруглювати кути зображень, завантажувати та перераховувати зображення тощо.
Nuke — це дуже корисна структура Swift з відкритим кодом, яка дозволяє розробникам програмного забезпечення легко завантажувати та відображати зображення у своїх власних програмах Swift. Для завантаження та відображення зображень у ваших програмах потрібен лише один рядок коду. Бібліотека також включає підтримку кількох розширених функцій, таких як попередній нагрів зображення та прогресивне декодування, які можуть значно підвищити продуктивність програми та взаємодію з користувачем.
Nuke API дуже простий у використанні та має дуже передову архітектуру, яка дозволяє розробникам програмного забезпечення створювати практично необмежені можливості для обробки та налаштування зображень. Він містить вбудовану підтримку основних форматів зображень, таких як JPEG, PNG, HEIF та багато інших. Він також підтримує кодування та декодування зображень за допомогою коду Swift.
Бібліотека має багато функцій і включає кілька важливих функцій для обробки зображень за допомогою команд Swift, таких як завантаження зображень, налаштування конвеєра зображень, зміна розміру зображень, застосування фільтрів, як-от розмиття за Гауссом, використання спеціального процесора, округлення кутів зображення, пам’ять LRU Кеш, дисковий кеш HTTP, агресивний дисковий кеш LRU, перезавантаження зображень, анімація зображень, інтелектуальна декомпресія фону, відновлення завантажень, пріоритезація запитів, режим низького обсягу даних та багато іншого.
Початок роботи з Nuke
Рекомендований спосіб встановлення Nuke — використання CocoaPods. Будь ласка, додайте наступні рядки до вашого Podfile
Встановіть Nuke через CocoaPods.
pod "Nuke"
pod "Nuke-Alamofire-Plugin" # optional
pod "Nuke-AnimatedImage-Plugin" # optional
Клонуйте найновіші джерела за допомогою наступної команди.
Встановіть Nuke через GitHub.
$ git https://github.com/kean/Nuke.git
Завантажуйте та використовуйте зображення за допомогою Swift
Nuke API з відкритим кодом забезпечує добре організований і ефективний спосіб завантаження та використання зображень у ваших програмах Swift. Щоб отримати зображення, вам потрібно передати URL потрібного зображення, а потім викликати метод resume. Він завантажить потрібне зображення у фоновому режимі та повідомить відповідь про закриття, коли це буде зроблено.
Перегляд зображень в різних способів всередині 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"))
}
}
Точне зображення за допомогою Swift API
Prefetching є дуже корисною функцією, яка дозволяє користувачам завантажувати зображення або інші дані перед тимчасом в очікуванні його використання. Програма може завантажити її і зберігати її в кеші мережі додатків. Після того, як необхідно переглянути зображення, відповідь на Ваш запит буде повернено з кешу замість мережі. Відкрите джерело API Nuke включено підтримку захоплюючої функції, відомого як Prefetching зображень за допомогою Swift коду. Будь ласка, пам'ятайте, що Придбання може отримувати дані користувачів і покласти додатковий тиск на процесор, а також пам'ять. Щоб зменшити цей тиск, ви можете вибрати тільки кеш диска, як призначення для загартування.
Prefect & Cache GitHub за допомогою 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)
}
}
Завантажте та перерахуйте зображення через Swift
Кешування зображень є дуже корисним методом, який покращує продуктивність програми та покращує роботу кінцевого користувача. Nuke API з відкритим кодом дозволяє програмним програмам автоматично кешувати завантажені зображення. Nuke покладається на два вбудовані рівні кешування. Перший використовується для зберігання обробленого зображення, готового до показу. Він використовує алгоритм LRU – записи, які використовувалися найменше, видаляються першими під час розгортки. Другийnd використовує дисковий кеш HTTP для зберігання необроблених даних зображення. Також можна перевірити наявність потрібного зображення в кеші.
Читання/запис зображень у пам’яті або дисковому кеші через 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()