Swift में इमेज प्रोसेसिंग: iOS और macOS के लिए पूरी गाइड

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

Swift में इमेज प्रोसेसिंग (iOS/macOS)

इमेज के साथ काम करना मोबाइल और डेस्कटॉप ऐप डेवलपमेंट की एक मुख्य ज़रूरत है। Swift में iOS और macOS के लिए कई बिल्ट-इन टूल्स मौजूद हैं, जो इमेज को लोड करने, दिखाने, प्रोसेस करने और सेव करने में मदद करते हैं। इस लेख में हम Apple प्लेटफॉर्म पर ग्राफिक्स के साथ प्रभावी ढंग से काम करने के लिए मुख्य तरीकों और API को विस्तार से समझेंगे।

इमेज के लिए मुख्य क्लासेस

प्लेटफॉर्म के अनुसार अलग-अलग क्लासेस का उपयोग किया जाता है:

  • iOS/tvOS/watchOS — UIImage (UIKit)
  • macOS — NSImage (AppKit)

दोनों क्लासेस में समान क्षमताएँ हैं, लेकिन API में अंतर है। क्रॉस-प्लेटफॉर्म डेवलपमेंट के लिए सामान्य प्रोटोकॉल या एक्सटेंशन का उपयोग किया जा सकता है।

इमेज लोड करना

सबसे आसान तरीका है ऐप के रिसोर्सेस से इमेज लोड करना:

// iOS
let image = UIImage(named: "example")

// macOS
let image = NSImage(named: "example")

नेटवर्क से लोड करने के लिए URLSession का उपयोग करें:

guard let url = URL(string: "https://example.com/image.jpg") else { return }

URLSession.shared.dataTask(with: url) { data, response, error in
    guard let data = data, error == nil else { return }
    DispatchQueue.main.async {
        // iOS
        let image = UIImage(data: data)
        // macOS
        let image = NSImage(data: data)
    }
}.resume()

इमेज प्रदर्शित करना

स्क्रीन पर इमेज दिखाने के लिए संबंधित view-कम्पोनेंट का उपयोग करें:

  • iOS — UIImageView
  • macOS — NSImageView
// iOS
let imageView = UIImageView(image: UIImage(named: "photo"))
imageView.contentMode = .scaleAspectFit

// macOS
let imageView = NSImageView(image: NSImage(named: "photo"))
imageView.imageScaling = .scaleProportionallyUpOrDown

Core Image के साथ इमेज प्रोसेसिंग

Core Image एक शक्तिशाली फ्रेमवर्क है जो इमेज फिल्टर और प्रोसेसिंग के लिए उपयोग होता है। आइए एक बुनियादी फिल्टर उदाहरण देखें:

import CoreImage

func applyFilter(to inputImage: CIImage) -> CIImage? {
    guard let filter = CIFilter(name: "CISepiaTone") else { return nil }
    filter.setValue(inputImage, forKey: kCIInputImageKey)
    filter.setValue(0.8, forKey: kCIInputIntensityKey)
    return filter.outputImage
}

// उपयोग
let originalImage = CIImage(image: UIImage(named: "photo")!)!
if let filteredImage = applyFilter(to: originalImage) {
    let context = CIContext()
    let cgImage = context.createCGImage(filteredImage, from: filteredImage.extent)
    let resultImage = UIImage(cgImage: cgImage!)
}

लोकप्रिय Core Image फिल्टर:

  • CISepiaTone — सेपिया प्रभाव
  • CIGaussianBlur — गॉसियन ब्लर
  • CIColorControls — चमक, कंट्रास्ट, संतृप्ति समायोजन
  • CIVignette — विगनेट प्रभाव

पिक्सल और CGImage के साथ काम करना

पिक्सल डेटा के साथ निम्न-स्तरीय काम के लिए Core Graphics से CGImage का उपयोग करें:

func pixelColors(from image: UIImage) -> [[UIColor]]? {
    guard let cgImage = image.cgImage else { return nil }
    let width = cgImage.width
    let height = cgImage.height
    
    let colorSpace = CGColorSpaceCreateDeviceRGB()
    let bytesPerPixel = 4
    let bytesPerRow = bytesPerPixel * width
    let bitsPerComponent = 8
    var pixelData = [UInt8](repeating: 0, count: width * height * bytesPerPixel)
    
    guard let context = CGContext(data: &pixelData,
                                  width: width,
                                  height: height,
                                  bitsPerComponent: bitsPerComponent,
                                  bytesPerRow: bytesPerRow,                    

अनुशंसाएँ