วันเสาร์ที่ 19 มีนาคม พ.ศ. 2554

iPhone: Get image path from UIImagePickerControllerSourceTypeCamera

Get image path from UIImagePickerControllerSourceTypeCamera
เกิดปัญหาขึ้นอีกแล้ว!!!! ในเมื่อเรากดถ่ายรูปจากกล้องได้แล้ว ที่นี้เราจะดึง Path รูปออกมาอย่างไร ผมลองวิธีการดึง NSURL ออกจากค่าของ info ที่เป็น NSDictionary ([info valueForKey:UIImagePickerControllerReferenceURL]) มันก้อดึงออกมาไม่ได้อยู่ดี เอ๋ทำไงดีน่า .... วิธีของมันคือเราต้องอาศัย ALAssetsLibrary ช่วยอีกแล้วครับ ลองมาดูกัน

ขั้นตอน

1. เขียนแรกกล้องถ่ายรูปขึ้นมาก่อน





2. วิธีเซฟรูปไปที่หน่วยความจำของ iPhone และ การดึงพาทรูปที่เซฟตะกี้ออกมา

2.1 ประกาศ type def ของ  ที่ .h

เพิ่มเติม
หากเราไม่มี <AssetsLibrary/AssetsLibrary.h> ให้ไปเพิ่ม existing framework นะครับ เลือกไปที่ AssetsLibrary.framework

2.2 เขียนฟังก์ชั่นเพิ่มเติมใน ฟังก์ชั่น imagePickerController didFinishPickingMediaWithInfo

เพิ่มเติม

1) UIImage *image = [info valueForKey:UIImagePickerControllerOriginalImage]; คือ ภาพที่เราดึงออกมาหลังจากถ่ายรูปเสร็จแล้ว

2) library writeImageToSavedPhotosAlbum: คือ ภาพที่เราจะนำเข้ามาเซฟใส่ iphone
orientation: คือ จะให้ภาพเป็นแนวตั้งหรือแนวนอน
completionBlock:  คือ เมื่อเสร็จฟังก์ชั่นนี้แล้วจะทำอะไรต่อในฟังก์ชั่นของ block นี้

3) เราจะดึง Path ของรูปออกมาได้จาก ALAssetsLibraryWriteImageCompletionBlock ค่าที่เราดึงมาคือค่าของ assetURL นั้นเอง
เท่านี้เราก็จะได้ Path ของรูปมาอยู่ที่ตัวแปร imageURL ที่เป็น String พร้อมนำไปใช้งานต่อแล้วครับ อาจจะยาวไปหน่อย ลองดูแบบเขียนย่อๆ ได้ที่ Reference นะ

อีกนิดนึง... เราสามารถเปลี่ยนหน้าไปหน้าอื่นได้หลังบรรทัด //success and to do... เลยนะครับ โดยใช้ค่า picker เป็นตัวเปลี่ยน View

บทความที่เกี่ยวข้อง

Reference

ความรู้เสริมเรื่องส่วนประกอบใน UIImagePickerController

adaydesign :)

ไม่มีความคิดเห็น:

แสดงความคิดเห็น