Nuke

 
 

छवि संपादन और प्रसंस्करण के लिए ओपन सोर्स स्विफ्ट लाइब्रेरी

फ्री स्विफ्ट एपीआई जो इमेज पाइपलाइन को कस्टमाइज़ करने, इमेज का आकार बदलने, कस्टम प्रोसेसर का उपयोग करने, राउंड इमेज कॉर्नर, डाउनलोड करने और कैश इमेज आदि की अनुमति देता है।

Nuke एक बहुत ही उपयोगी ओपन सोर्स स्विफ्ट फ्रेमवर्क है जो सॉफ्टवेयर डेवलपर्स को अपने स्वयं के स्विफ्ट एप्लिकेशन के अंदर छवियों को आसानी से लोड और प्रदर्शित करने में सक्षम बनाता है। आपके ऐप्स में छवियों को डाउनलोड करने और प्रदर्शित करने के लिए कोड की केवल एक पंक्ति की आवश्यकता होती है। लाइब्रेरी में कई उन्नत सुविधाओं जैसे कि इमेज प्रीहीटिंग और प्रगतिशील डिकोडिंग के लिए समर्थन भी शामिल है जो ऐप के प्रदर्शन के साथ-साथ उपयोगकर्ता अनुभव को नाटकीय रूप से बढ़ा सकता है।

Nuke API का उपयोग करना बहुत आसान है और इसमें एक बहुत ही उन्नत आर्किटेक्चर है जो सॉफ्टवेयर डेवलपर्स को इमेज प्रोसेसिंग और अनुकूलन के लिए लगभग असीमित संभावनाओं के बारे में सोचने में सक्षम बनाता है। इसमें JPEG, PNG, HEIF, और कई अन्य जैसे मूल छवि प्रारूपों के लिए अंतर्निहित समर्थन शामिल है। यह स्विफ्ट कोड का उपयोग करके छवि एन्कोडिंग और डिकोडिंग का भी समर्थन करता है।

पुस्तकालय बहुत सुविधा संपन्न है और इसमें स्विफ्ट कमांड का उपयोग करके उनकी छवियों को संभालने के लिए कई महत्वपूर्ण विशेषताएं शामिल हैं, जैसे लोड छवियों, छवि पाइपलाइन को अनुकूलित करना, छवियों का आकार बदलना, गॉसियन ब्लर जैसे फ़िल्टर लागू करना, कस्टम प्रोसेसर का उपयोग करना, गोल छवि कोनों, एलआरयू मेमोरी कैशे, एचटीटीपी डिस्क कैशे, आक्रामक एलआरयू डिस्क कैश, रीलोडिंग इमेज, इमेज एनिमेशन, स्मार्ट बैकग्राउंड डीकंप्रेसन, डाउनलोड फिर से शुरू करना, अनुरोध प्राथमिकता, कम डेटा मोड और बहुत कुछ।

Previous Next

Nuke . के साथ शुरुआत करना 

Nuke को स्थापित करने का अनुशंसित तरीका CocoaPods का उपयोग करना है। कृपया निम्नलिखित पंक्तियों को अपने पॉडफाइल में जोड़ें

CocoaPods के माध्यम से Nuke स्थापित करें।

pod "Nuke"
pod "Nuke-Alamofire-Plugin" # optional
pod "Nuke-AnimatedImage-Plugin" # optional

निम्न आदेश का उपयोग करके नवीनतम स्रोतों को क्लोन करें।

GitHub के माध्यम से Nuke इंस्टॉल करें।

$ git https://github.com/kean/Nuke.git 

स्विफ्ट का उपयोग करके छवियों को डाउनलोड करें और उनका उपयोग करें

ओपन सोर्स न्यूक एपीआई आपके स्विफ्ट ऐप्स के अंदर छवियों को डाउनलोड करने और उपयोग करने के लिए एक सुव्यवस्थित और प्रभावी तरीका प्रदान करता है। छवियों को लाने के लिए आपको आवश्यक छवि का यूआरएल पास करना होगा और फिर फिर से शुरू विधि को कॉल करना होगा। यह पृष्ठभूमि में अनुरोधित छवि को डाउनलोड करेगा और यह पूरा होने पर प्रतिक्रिया बंद होने की सूचना देगा।

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"))
    }
} 

स्विफ्ट API का उपयोग करके प्रीफेक्ट इमेज

Prefetching एक बहुत ही उपयोगी विशेषता है जो उपयोगकर्ताओं को इसके उपयोग की प्रत्याशा में समय से पहले छवि या अन्य डेटा डाउनलोड करने में सक्षम बनाता है। एप्लिकेशन इसे डाउनलोड कर सकते हैं और इसे एप्लिकेशन के नेटवर्क कैश में स्टोर कर सकते हैं। बाद में जब आपको छवि देखने की आवश्यकता होती है तो आपके अनुरोध की प्रतिक्रिया नेटवर्क के बजाय कैश से वापस आ जाएगी। ओपन सोर्स API न्यूक ने स्विफ्ट कोड का उपयोग करके प्रीफेचिंग छवियों के रूप में जाने वाली एक रोमांचक विशेषता के लिए समर्थन शामिल किया है। कृपया याद रखें कि प्रीफेचिंग उपयोगकर्ताओं के डेटा को ले सकता है और सीपीयू के साथ-साथ मेमोरी पर अतिरिक्त दबाव डाल सकता है। इस दबाव को कम करने के लिए आप केवल पूर्ववर्ती गंतव्य के रूप में डिस्क कैश चुन सकते हैं।

प्रीफेक्ट एंड कैश GitHub स्विफ्ट 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)
    }
} 

स्विफ्ट के माध्यम से लोड और नकद छवियां

इमेज कैशिंग एक बहुत ही उपयोगी तरीका है जो एप्लिकेशन प्रदर्शन और अंतिम-उपयोगकर्ता अनुभव को बेहतर बनाता है। खुला स्रोत Nuke API सॉफ़्टवेयर ऐप्स को डाउनलोड की गई छवियों को स्वचालित रूप से कैश करने में सक्षम बनाता है। Nuke दो अंतर्निहित कैशिंग परतों पर निर्भर करता है। पहले वाले का उपयोग संसाधित छवि को संग्रहीत करने के लिए किया जाता है, जो प्रदर्शन के लिए तैयार है। यह LRU एल्गोरिथम का उपयोग करता है - सबसे कम हाल ही में उपयोग की गई प्रविष्टियों को स्वीप के दौरान पहले हटा दिया जाता है। 2nd असंसाधित छवि डेटा को संग्रहीत करने के लिए HTTP डिस्क कैश का उपयोग करता है। कैश में अनुरोधित छवि के अस्तित्व की जांच करना भी संभव है।

Swift API के माध्यम से मेमोरी या डिस्क कैश में Read/Write छवियां

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() 
 हिन्दी