इस पोस्ट में हम सीखेंगे कि iOS में प्रोग्रामेटिक रूप से स्क्रीनशॉट कैसे लें।
हम एक टेक्स्ट फील्ड जोड़ेंगे जहां हम वैल्यू बदलेंगे, बटन दबाकर स्क्रीनशॉट लेंगे और फिर स्क्रीनशॉट को एक इमेज व्यू में दिखाएंगे जिसे हम बटन के ठीक नीचे रखेंगे।
याद रखें कि आप इस कार्यक्षमता को लॉन्ग प्रेस या किसी अन्य जेस्चर पर जोड़ सकते हैं, और इमेज को सेव भी कर सकते हैं। लेकिन अभी हम केवल स्क्रीनशॉट कैप्चर करने और उसे इमेज व्यू पर दिखाने पर ध्यान केंद्रित करेंगे।
चरण 1: नया Xcode प्रोजेक्ट बनाएं
Xcode खोलें → New Project → Single View Application → नाम "TakeScreenShot" रखें।
चरण 2: स्टोरीबोर्ड में UI एलिमेंट्स जोड़ें
Main.storyboard खोलें और एक UITextField, एक बटन और एक UIImageView जोड़ें।

चरण 3: इमेज व्यू के लिए IBOutlet बनाएं
इमेज व्यू के लिए एक @IBOutlet जोड़ें, नाम "snapShotImageView" रखें। यह वह इमेज व्यू है जहां हम कैप्चर किया गया स्क्रीनशॉट दिखाएंगे।
चरण 4: बटन के लिए IBAction बनाएं
'Take Snap Shot' बटन के touchUpInside के लिए @IBAction जोड़ें, फंक्शन का नाम "takeSnapShotClicked" रखें।
चरण 5: viewDidLoad में इमेज व्यू के लिए बॉर्डर सेट करें
self.snapShotImageView.layer.borderColor = UIColor.red.cgColor self.snapShotImageView.layer.borderWidth = 2.0
चरण 6: स्क्रीनशॉट कैप्चर करने का मेथड
हम स्क्रीनशॉट कैप्चर करने के लिए निम्न मेथड का उपयोग करेंगे:
- ग्राफिक्स कॉन्टेक्स्ट शुरू करें।
- वर्तमान कॉन्टेक्स्ट को एक वेरिएबल में कैप्चर करें।
- कॉन्टेक्स्ट वेरिएबल में, वर्तमान व्यू की लेयर रेंडर करें।
- कॉन्टेक्स्ट वेरिएबल से इमेज प्राप्त करें। ध्यान दें कि इस बिंदु पर कॉन्टेक्स्ट में वर्तमान में व्यू पर जो कुछ भी उपलब्ध है उसका स्क्रीनशॉट होगा।
- कैप्चर की गई इमेज को अपने इमेज व्यू पर सेट करें।
- ग्राफिक्स कॉन्टेक्स्ट समाप्त करें।
उपरोक्त सभी takeSnapShotClicked मेथड में करेंगे:
@IBAction func takeSnapShotClicked(_ sender: Any) {
UIGraphicsBeginImageContextWithOptions(self.view.layer.frame.size, false, UIScreen.main.scale)
guard let context = UIGraphicsGetCurrentContext() else { return }
self.view.layer.render(in: context)
self.snapShotImageView.image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
}
चरण 7: बिल्ड और चलाएं
प्रोजेक्ट बिल्ड करके चलाएं। टेक स्नैपशॉट बटन पर क्लिक करें। आपको निचले इमेज व्यू में स्नैपशॉट दिखाई देना चाहिए।
