ในโพสต์นี้ เราจะเรียนรู้วิธีถ่ายภาพหน้าจอโดยทางโปรแกรมใน iOS
เราจะเพิ่มฟิลด์ข้อความที่เราจะเปลี่ยนค่า ถ่ายภาพหน้าจอโดยกดปุ่ม จากนั้นแสดงภาพหน้าจอใน imageView ซึ่งเราจะวางไว้ด้านล่างปุ่มเอง
จำไว้ว่าคุณสามารถเพิ่มฟังก์ชันนี้ด้วยการกดค้างหรือท่าทางอื่น ๆ และบันทึกภาพได้หากต้องการ แต่ตอนนี้เราจะเน้นไปที่การจับภาพหน้าจอและแสดงในมุมมองภาพเท่านั้น
มาเริ่มกันเลย
ขั้นตอนที่ 1 − เปิด Xcode → โครงการใหม่ → แอปพลิเคชั่นมุมมองเดียว → ตั้งชื่อมันว่า "TakeScreenShot"
ขั้นตอนที่ 2 − เปิด Main.storyboard เพิ่มหนึ่ง UITextField หนึ่งปุ่ม และหนึ่ง UIImageView ดังที่แสดงด้านล่าง
ขั้นตอนที่ 3 - แนบ @IBOutlet หนึ่งรายการสำหรับการดูภาพ ตั้งชื่อเป็น snapShotImageView นี่คือมุมมองภาพที่เราจะหว่านภาพหน้าจอที่ถ่ายไว้
ขั้นตอนที่ 4 − เพิ่ม @IBAction หนึ่งรายการสำหรับ touchUpInside ของปุ่ม 'Take Snap Shot' ตั้งชื่อฟังก์ชันเป็น takeSnapShotClicked
ขั้นตอนที่ 5 − ใน viewDidLoad ของคลาส ViewController ให้กำหนดสีเส้นขอบและความกว้างสำหรับรูปภาพที่ imageView เพื่อแยกความแตกต่างจากส่วนอื่นๆ ของมุมมอง
self.snapShotImageView.layer.borderColor = UIColor.red.cgColor self.snapShotImageView.layer.borderWidth = 2.0
ขั้นตอนที่ 6 − เราจะใช้วิธีต่อไปนี้ในการจับภาพหน้าจอ
- เริ่มบริบทแบบกราฟิก
- จับบริบทปัจจุบันในตัวแปร
- Int ตัวแปรบริบท แสดงผลเลเยอร์มุมมองปัจจุบัน
- รับรูปภาพจากตัวแปรบริบท โปรดทราบว่าบริบท ณ จุดนี้จะมีภาพหน้าจอของสิ่งที่มีอยู่ในมุมมองในขณะนี้
- เราจะตั้งค่าภาพที่ถ่ายจากบริบทเป็น ImageView ของเรา
- จบบริบทกราฟิก
จากทั้งหมดที่กล่าวมาเราจะทำในวิธี 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 - สร้างและดำเนินโครงการ คลิกที่ปุ่มถ่ายภาพสแนปชอต คุณควรเห็นสแนปชอตในมุมมองรูปภาพด้านล่าง