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

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


แม้ว่า iOS จะไม่มีวิธีอย่างเป็นทางการในการจับภาพหน้าจอบนอุปกรณ์ iOS โดยทางโปรแกรม แต่ให้วิธีการจับภาพหน้าจอโดยใช้ปุ่มโฮมและปุ่มเปิดปิด โดยการกดทั้งสองอย่างพร้อมกัน

ในการจับภาพหน้าจอ เราต้องทำตามขั้นตอนต่างๆ กัน

  • เราจะได้เลเยอร์ของ keyWindow – UIApplication.shared.keyWindow!.layer

  • เราจะได้มาตราส่วนของหน้าจอ – UIApplication.main.scale

  • การสร้างภาพใหม่ที่มีขนาดเท่ากับมุมมอง

  • เรนเดอร์และบันทึกภาพ

มาสร้างโปรเจ็กต์ใหม่กันเถอะ ในตัวควบคุมมุมมองหลัก ให้สีพื้นหลัง จากนั้นลากปุ่มและเชื่อมต่อเพื่อสร้างแอคชั่นไปยังคลาสของมัน เพิ่มรหัสต่อไปนี้ในการดำเนินการ

@IBAction func takeshot(_ sender:Any) { รูปภาพ :UIImage? ให้ currentLayer =UIApplication.shared.keyWindow!.layer ให้ currentScale =UIScreen.main.scale UIGraphicsBeginImageContextWithOptions (currentLayer.frame.size, false, currentScale); guard ให้ currentContext =UIGraphicsGetCurrentContext () อื่น {return} currentLayer.render (ใน:currentContext) image =UIGraphicsGetImageFromCurrentImageContext () UIGraphicsEndImageContext () ให้ img =รูปภาพอื่น { return } UIImageWriteToSavedPhotosAlbum (img, ไม่มีศูนย์)> 

ในขณะที่ใช้สิ่งนี้เป็นครั้งแรก คุณจะต้องอนุญาตให้รูปภาพบันทึกภาพได้ ภาพที่บันทึกไว้จะอยู่ในรูปแบบ .jpg

เพิ่ม “NSPhotoLibraryAddUsageDescription” . ด้วย ไปที่ info.plist ของแอปของคุณ

ซึ่งสามารถแปลงเป็นฟังก์ชันและใช้ในหลายๆ ที่ หรือเป็นส่วนขยายได้

นี่คือลักษณะของแอป เมื่อคุณเรียกใช้

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

หลังจากวิ่งครั้งแรกและกดปุ่มถ่ายภาพ

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

หลังจากที่คุณอนุญาตการเข้าถึงแล้ว ให้ไปที่แอพรูปภาพบน iPhone ของคุณและรูปภาพจะอยู่ที่นั่น

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