วิธีการแปลง View ทั้ง View ให้กลายเป็นรูปภาพหลักการก็คือ เราจะทำการ render View ตัวที่เราต้องการลงไปใน Image Context จากนั้นก็ get รูปภาพจาก Image Context ออกมา และจากหลักการนี้เราจะได้ขั้นตอนดังต่อไปนี้
UIView *view = _myView;
UIGraphicsBeginImageContext(view.frame.size);
[[view layer] renderInContext:UIGraphicsGetCurrentContext()];
UIImage *screenshot = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
วิธีนี้ไม่ใช่การทำ screenshot หน้าจอ แต่จะเป็นการเอา View ทั้งตัวแปลงออกมาให้เป็นรูปภาพ แปลว่าแม้ View นั้นจะไม่ถูกแสดงอยู่บนจอภาพ ก็ยังถูกแปลงออกมาให้เป็นรูปได้อยู่ดี
ไหนๆ ก็กล่าวถึงการ Capture หน้าจอ หรือการทำ Screenshot หรือการ Dump Screen แล้ว ใน Cocoa Touch Framework ก็มี function ที่ช่วยอำนวยความสะดวกในการทำ Screenshot หน้าจอเช่นกัน ดังนี้
UIImage *screenshot = [UIImage imageWithCGImage:UIGetScreenImage()];
เราจะใช้ UIGetScreenImage() เพื่อทำ Screenshot หน้าจอ โดย function นี้จะไม่ทำงานหากเราทดสอบโปรแกรมบน iPhone Simulator ทำให้ต้องทดสอบบน Device จริงเท่านั้นเราจึงจะเห็นผล
Related Link from Roti
0 comments:
Post a Comment