Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> IOS

วิธีถ่ายภาพหน้าจอโดยทางโปรแกรมบน iOS


ในโพสต์นี้ เราจะเรียนรู้วิธีถ่ายภาพหน้าจอโดยทางโปรแกรมใน iOS

เราจะเพิ่มฟิลด์ข้อความที่เราจะเปลี่ยนค่า ถ่ายภาพหน้าจอโดยกดปุ่ม จากนั้นแสดงภาพหน้าจอใน imageView ซึ่งเราจะวางไว้ด้านล่างปุ่มเอง

จำไว้ว่าคุณสามารถเพิ่มฟังก์ชันนี้ด้วยการกดค้างหรือท่าทางอื่น ๆ และบันทึกภาพได้หากต้องการ แต่ตอนนี้เราจะเน้นไปที่การจับภาพหน้าจอและแสดงในมุมมองภาพเท่านั้น

มาเริ่มกันเลย

ขั้นตอนที่ 1 − เปิด Xcode → โครงการใหม่ → แอปพลิเคชั่นมุมมองเดียว → ตั้งชื่อมันว่า "TakeScreenShot"

ขั้นตอนที่ 2 − เปิด Main.storyboard เพิ่มหนึ่ง UITextField หนึ่งปุ่ม และหนึ่ง UIImageView ดังที่แสดงด้านล่าง

วิธีถ่ายภาพหน้าจอโดยทางโปรแกรมบน iOS

ขั้นตอนที่ 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 - สร้างและดำเนินโครงการ คลิกที่ปุ่มถ่ายภาพสแนปชอต คุณควรเห็นสแนปชอตในมุมมองรูปภาพด้านล่าง

วิธีถ่ายภาพหน้าจอโดยทางโปรแกรมบน iOS