iphone अनुप्रयोग में कैमरा खोलने के लिए कैसे ... imagepickerview का उपयोग कर हम इतना है कि हम चित्र ले जा सकते हैं कैमरा एप्लिकेशन खोलने के लिए library..how खोल सकते हैं जैसा ..उद्घाटन कैमरा प्रोग्राम के
उत्तर
आप की जरूरत है UIImagePickerController का उपयोग करें।
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
आप UIImagePickerControllerDelegate
विधि imagePickerController:didFinishPickingMediaWithInfo:
लागू करने के लिए और फिर UIImage, आप चाहते हैं जो कुछ भी फ़ाइल नाम के साथ, जहां भी आप चाहते करने के लिए स्टोर NSFileManager तरीकों का उपयोग कर सकते है।
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
इस कोड को डिवाइस कैमरा ट्रिगर किया जाएगा ..
- (आईबीएक्शन) पकड़ो छवि: (आईडी) प्रेषक { \t UIImagePickerController * picker = [[UIImagePickerController alloc] init]; \t picker.delegate = self; \t picker.allowsEditing = हाँ; \t picker.sourceType = UIImagePickerControllerSourceTypeCamera; \t [स्वयं उपस्थित मॉड्यूल दृश्य नियंत्रक: पिकर एनिमेटेड: हाँ]; \t [पिकर रिलीज]; } – nik
एक और सवाल .. हम कैसे आईफोन में सर्वर पर छवियों/ऑडियो/वीडियो अपलोड कर सकते हैं ..? क्या आप कोई सहायक लिंक दे सकते हैं ....? –
@ कुल्दीप उन्हें एनएसडीटा में परिवर्तित करें और फिर सर्वर पर अपलोड करें – KingofBliss
संपादित करें: 15 मार्च, 2016 - यहाँ मेरी पूर्व उत्तर की एक तेज संस्करण, है आप उद्देश्य-सी संस्करण आप करेंगे के लिए देख रहे हैं इसे नीचे पाएं।
- स्विफ्ट -
पहले UIImagePickerControllerDelegate प्रोटोकॉल और UINavigationControllerDelegate प्रोटोकॉल
class ViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate
लांच चित्र पिकर
func actionLaunchCamera()
{
if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.Camera)
{
let imagePicker:UIImagePickerController = UIImagePickerController()
imagePicker.delegate = self
imagePicker.sourceType = UIImagePickerControllerSourceType.Camera
imagePicker.allowsEditing = true
self.presentViewController(imagePicker, animated: true, completion: nil)
}
else
{
let alert:UIAlertController = UIAlertController(title: "Camera Unavailable", message: "Unable to find a camera on this device", preferredStyle: UIAlertControllerStyle.Alert)
self.presentViewController(alert, animated: true, completion: nil)
}
}
UIImagePickerDelegate प्रोटोकॉल
के लिए प्रतिनिधि के तरीकों को लागू करने के अनुरूपfunc imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject])
{
// create a filepath with the current date/time as the image name
let savePath:String = self.documentsPath()! + "/" + self.presentDateTimeString() + ".png"
// try to get our edited image if there is one, as well as the original image
let editedImg:UIImage? = info[UIImagePickerControllerEditedImage] as? UIImage
let originalImg:UIImage? = info[UIImagePickerControllerOriginalImage] as? UIImage
// create our image data with the edited img if we have one, else use the original image
let imgData:NSData = editedImg == nil ? UIImagePNGRepresentation(editedImg!)! : UIImagePNGRepresentation(originalImg!)!
// write the image data to file
imgData.writeToFile(savePath, atomically: true)
// dismiss the picker
self.dismissViewControllerAnimated(true, completion: nil)
}
func imagePickerControllerDidCancel(picker: UIImagePickerController)
{
// picker cancelled, dismiss picker view controller
self.dismissViewControllerAnimated(true, completion: nil)
}
// added these methods simply for convenience/completeness
func documentsPath() ->String?
{
// fetch our paths
let paths = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true)
if paths.count > 0
{
// return our docs directory path if we have one
let docsDir = paths[0]
return docsDir
}
return nil
}
func presentDateTimeString() ->String
{
// setup date formatter
let dateFormatter:NSDateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "dd-MM-yyyy HH:mm:ss"
// get current date
let now:NSDate = NSDate()
// generate date string from now
let theDateTime = dateFormatter.stringFromDate(now)
return theDateTime
}
- ऑब्जेक्टिव-सी -
संपादित करें: अगर कैमरा लॉन्च करने के लिए प्रयास करने से पहले उपलब्ध है की जाँच करने के लिए अद्यतन। ऐप सैंडबॉक्स के भीतर दस्तावेज़ फ़ोल्डर में एक पीएनजी फोटो को सहेजने के तरीके को दिखाते हुए कोड भी जोड़ा गया।
इसे आज़माएं (यह एआरसी का उपयोग करता है)।
-(void)actionLaunchAppCamera
{
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera])
{
UIImagePickerController *imagePicker = [[UIImagePickerController alloc]init];
imagePicker.delegate = self;
imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
imagePicker.allowsEditing = YES;
[self presentModalViewController:imagePicker animated:YES];
}else{
UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"Camera Unavailable"
message:@"Unable to find a camera on your device."
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil, nil];
[alert show];
alert = nil;
}
}
फिर एक को संभालने के लिए प्रतिनिधि प्रोटोकॉल को लागू: चित्र पिकर (कैमरा) लॉन्च
@interface MyViewController : UIViewController <UINavigationControllerDelegate,UIImagePickerControllerDelegate>
मीटर फ़ाइल में:
ज फ़ाइल में प्रतिनिधि प्रोटोकॉल के अनुरूप उपयोगकर्ता घटना रद्द या फोटो सहेजें/संपादित/आदि।
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
//This creates a filepath with the current date/time as the name to save the image
NSString *presentTimeStamp = [Utilities getPresentDateTime];
NSString *fileSavePath = [Utilities documentsPath:presentTimeStamp];
fileSavePath = [fileSavePath stringByAppendingString:@".png"];
//This checks to see if the image was edited, if it was it saves the edited version as a .png
if ([info objectForKey:UIImagePickerControllerEditedImage]) {
//save the edited image
NSData *imgPngData = UIImagePNGRepresentation([info objectForKey:UIImagePickerControllerEditedImage]);
[imgPngData writeToFile:fileSavePath atomically:YES];
}else{
//save the original image
NSData *imgPngData = UIImagePNGRepresentation([info objectForKey:UIImagePickerControllerOriginalImage]);
[imgPngData writeToFile:fileSavePath atomically:YES];
}
[self dismissModalViewControllerAnimated:YES];
}
-(void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
{
[self dismissModalViewControllerAnimated:YES];
}
भी संपादित में जोड़ा: यहाँ तरीकों यह दस्तावेज़ पथ और वर्तमान दिनांक/समय प्राप्त करने के लिए उपयोगिताएँ वर्ग संदर्भित
+(NSString *)documentsPath:(NSString *)fileName {
NSArray *paths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
return [documentsDirectory stringByAppendingPathComponent:fileName];
}
+(NSString *)getPresentDateTime{
NSDateFormatter *dateTimeFormat = [[NSDateFormatter alloc] init];
[dateTimeFormat setDateFormat:@"dd-MM-yyyy HH:mm:ss"];
NSDate *now = [[NSDate alloc] init];
NSString *theDateTime = [dateTimeFormat stringFromDate:now];
dateTimeFormat = nil;
now = nil;
return theDateTime;
}
// ओपन गैलरी के लिए कर रहे हैं
UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init];
imagePickerController.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
imagePickerController.delegate = self;
if([[[UIDevice currentDevice] systemVersion] floatValue]>=8.0)
{
[[NSOperationQueue mainQueue] addOperationWithBlock:^{
[self presentViewController:imagePickerController animated:YES completion:nil];
}];
}
else{
[self presentViewController:imagePickerController animated:YES completion:nil];
}
// खुले कैमरा
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera])
{
UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init];
imagePickerController.modalPresentationStyle = UIModalPresentationFullScreen;
imagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera;
imagePickerController.delegate = self;
if([[[UIDevice currentDevice] systemVersion] floatValue]>=8.0)
{
[[NSOperationQueue mainQueue] addOperationWithBlock:^{
[self presentViewController:imagePickerController animated:YES completion:nil];
}];
}
else{
[self presentViewController:imagePickerController animated:YES completion:nil];
}
}
यहां डिजिटल हाउंड के उत्तर का एक अद्यतन संस्करण है जो स्विफ्ट 3 के लिए काम करता है।
कार्रवाई लॉन्च कैमरा समारोह:
func actionLaunchCamera()
{
if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.camera)
{
let imagePicker:UIImagePickerController = UIImagePickerController()
imagePicker.delegate = self
imagePicker.sourceType = UIImagePickerControllerSourceType.camera
imagePicker.allowsEditing = true
self.present(imagePicker, animated: true, completion: nil)
}
else
{
let alert:UIAlertController = UIAlertController(title: "Camera Unavailable", message: "Unable to find a camera on this device", preferredStyle: UIAlertControllerStyle.alert)
alert.addAction(UIAlertAction(title: "Dismiss", style: .default, handler: nil))
alert.view.tintColor = UIColor(red:0.37, green:0.66, blue:0.44, alpha:1.0)
self.present(alert, animated: true, completion: nil)
}
}
प्रतिनिधि कार्य:
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
// create a filepath with the current date/time as the image name
let savePath:URL = URL(fileURLWithPath: self.documentsPath()! + "/" + self.presentDateTimeString() + ".png")
// try to get our edited image if there is one, as well as the original image
let editedImg:UIImage? = info[UIImagePickerControllerEditedImage] as? UIImage
let originalImg:UIImage? = info[UIImagePickerControllerOriginalImage] as? UIImage
// create our image data with the edited img if we have one, else use the original image
let imgData:Data = editedImg == nil ? UIImagePNGRepresentation(editedImg!)! : UIImagePNGRepresentation(originalImg!)! as Data
// write the image data to file
try! imgData.write(to: savePath, options: [])
// dismiss the picker
self.dismiss(animated: true, completion: nil)
}
func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
// picker cancelled, dismiss picker view controller
self.dismiss(animated: true, completion: nil)
}
// added these methods simply for convenience/completeness
func documentsPath() ->String?
{
// fetch our paths
let paths = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.documentDirectory, FileManager.SearchPathDomainMask.userDomainMask, true)
if paths.count > 0
{
// return our docs directory path if we have one
let docsDir = paths[0]
return docsDir
}
return nil
}
func presentDateTimeString() ->String
{
// setup date formatter
let dateFormatter:DateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd-MM-yyyy HH:mm:ss"
// get current date
let now:Date = Date()
// generate date string from now
let theDateTime = dateFormatter.string(from: now)
return theDateTime
}
यह वही मेरे लिए काम किया है।
चरण 1: की पुष्टि करें UIImagePickerControllerDelegate , UINavigationControllerDelegate
के चरण 2: (आईओएस 10+) अपने Info.plist फाइल करने के लिए कुंजी के रूप में इस जोड़े कुंजी: गोपनीयता - कैमरा प्रयोग विवरण
मूल्य: #Your संदेश
चरण 3: और अपने @IBAction में इस
if UIImagePickerController.isSourceTypeAvailable(.camera) {
var imagePicker = UIImagePickerController()
imagePicker.delegate = self
imagePicker.sourceType = .camera
imagePicker.allowsEditing = false
self.present(imagePicker, animated: true, completion: nil)
}
कैसे है कि कैमरे को खोलने के लिए ... आप कुछ नमूना पोस्ट कर सकते हैं कोड ... –
प्रलेखन पढ़ें, इसमें नमूना कोड – KingofBliss
एक और सवाल है .. हम कैसे आईफोन में सर्वर पर छवियों/ऑडियो/वीडियो अपलोड कर सकते हैं ..? क्या आप कोई सहायक लिंक दे सकते हैं ....? –