Nuke
Thư viện Swift mã nguồn mở để chỉnh sửa và xử lý hình ảnh
API Swift miễn phí cho phép tùy chỉnh đường dẫn hình ảnh, thay đổi kích thước hình ảnh, sử dụng bộ xử lý tùy chỉnh, các góc hình ảnh tròn, tải xuống và hình ảnh tiền mặt, v.v.
Nuke là một hệ thống nguồn mở rất hữu dụng cho phép các nhà phát triển phần mềm dễ dàng tải và hình ảnh trong các ứng dụng của riêng mình. Nó chỉ cần một dòng mã để tải và hình ảnh trong các ứng dụng của anh. Thư viện cũng bao gồm hỗ trợ cho một số tính năng tiên tiến như hình ảnh giới thiệu và trang trí tiến bộ có thể tăng cường hiệu suất của ứng dụng cũng như trải nghiệm người dùng.
Nuke API rất dễ sử dụng và có kiến trúc rất tiên tiến cho phép các nhà phát triển phần mềm nghĩ ra các khả năng xử lý và tùy chỉnh hình ảnh hầu như không giới hạn. Nó đã bao gồm hỗ trợ tích hợp cho các định dạng hình ảnh cơ bản như JPEG, PNG, HEIF và nhiều định dạng khác. Nó cũng hỗ trợ mã hóa và giải mã hình ảnh bằng mã Swift.
Thư viện rất giàu tính năng và có nhiều tính năng quan trọng để xử lý hình ảnh của họ bằng cách sử dụng Swift chỉ huy, như hình ảnh nạp đạn, hình ảnh tùy chỉnh, hình ảnh thu thập, các bộ lọc như tiếng Nga, sử dụng một bộ vi xử lý, các góc hình ảnh tròn, RU Memory Cache, HTTP Disc Cache, hình ảnh thu xếp, hình ảnh hoạt hình ảnh, hình ảnh nền thông minh, tải về Resuming, yêu cầu ưu tiên, chế độ dữ liệu thấp và nhiều hơn.
Bắt đầu với Nuke
Cách được khuyến nghị để cài đặt Nuke là sử dụng CocoaPods. Vui lòng thêm các dòng sau vào Podfile của bạn
Cài đặt Nuke qua CocoaPods.
pod "Nuke"
pod "Nuke-Alamofire-Plugin" # optional
pod "Nuke-AnimatedImage-Plugin" # optional
Sao chép các nguồn mới nhất bằng lệnh sau.
Cài đặt Nuke qua GitHub.
$ git https://github.com/kean/Nuke.git
Tải xuống và sử dụng hình ảnh bằng Swift
Nuke API mã nguồn mở cung cấp một cách có tổ chức tốt và hiệu quả để tải xuống và sử dụng hình ảnh bên trong ứng dụng Swift của bạn. Để tìm nạp hình ảnh, bạn cần chuyển URL của hình ảnh cần thiết và sau đó gọi phương thức tiếp tục. Nó sẽ tải xuống hình ảnh được yêu cầu trong nền và sẽ thông báo kết thúc phản hồi khi hoàn tất.
Xem hình ảnh theo cách khác nhau trong ứng dụng 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"))
}
}
Prefect Image sử dụng Swift API
Prefetching là một tính năng rất hữu dụng cho phép người dùng tải hình ảnh hoặc dữ liệu khác trước thời gian để chống lại việc sử dụng nó. Các ứng dụng có thể tải nó và lưu trữ nó trong bộ lọc mạng của ứng dụng. Sau đó khi anh cần xem hình ảnh phản ứng với yêu cầu của anh sẽ quay lại từ bộ nhớ thay vì mạng. Nguồn mở API Nuke bao gồm hỗ trợ cho một tính năng thú vị được biết đến như hình ảnh Prefetching sử dụng mã Swift. Hãy nhớ rằng Prefetching có thể lấy dữ liệu của người dùng và đặt thêm áp lực lên CPU cũng như trí nhớ. Để giảm áp lực này, anh chỉ có thể lựa chọn bộ lọc đĩa như là điểm đến trước.
Prefect và Cache GitHub dùng 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ải và rút tiền hình ảnh qua Swift
Bộ nhớ đệm hình ảnh là một phương pháp rất hữu ích giúp cải thiện hiệu suất ứng dụng và trải nghiệm người dùng cuối. API Nuke nguồn mở cho phép các ứng dụng phần mềm tự động lưu vào bộ nhớ cache các hình ảnh đã tải xuống. Nuke dựa trên hai lớp bộ nhớ đệm được tích hợp sẵn. Cái đầu tiên được sử dụng để lưu trữ hình ảnh đã xử lý, sẵn sàng để hiển thị. Nó sử dụng thuật toán LRU - các mục ít được sử dụng gần đây nhất sẽ bị loại bỏ đầu tiên trong quá trình quét. Cái thứ 2 nd sử dụng HTTP Disk Cache để lưu trữ dữ liệu hình ảnh chưa được xử lý. Cũng có thể kiểm tra sự tồn tại của hình ảnh được yêu cầu trong bộ nhớ cache.
Read/Write hình ảnh trong bộ nhớ hoặc đĩa Cache thông qua 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()