iOS 調用系統相機和相簿的方法

來源:互聯網
上載者:User

#import “CameraViewController.h”

@interface CameraViewController ()

@end

@implementation CameraViewController

– (void)viewDidLoad {

[super viewDidLoad];

NSArray *arr = @[@”調用相機”,@”調用圖片庫”,@”開啟閃關燈”,@”關閉閃光燈”];

 

for (int i = 0; i < 4; i++) {

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];

button.frame = CGRectMake(100, (100 + 10) * i + 50, 100, 100);

[button setTitle:arr[i] forState:(UIControlStateNormal)];

[button setTitleColor:[UIColor blackColor] forState:(UIControlStateNormal)];

if (i == 0) {

[button addTarget:self action:@selector(addCarema) forControlEvents:(UIControlEventTouchUpInside)];

}else if (i == 1)

{

[button addTarget:self action:@selector(openPicLibrary) forControlEvents:(UIControlEventTouchUpInside)];

}else if (i == 2)

{

[button addTarget:self action:@selector(openFlashlight) forControlEvents:(UIControlEventTouchUpInside)];

}

else if (i == 3)

{

[button addTarget:self action:@selector(closeFlashlight) forControlEvents:(UIControlEventTouchUpInside)];

}

[self.view addSubview:button];

}

 

// Do any additional setup after loading the view.

}

-(void)addCarema

{

//判斷是否可以開啟相機,模擬器無法使用此功能

if ([UIImagePickerController isSourceTypeAvailable:(UIImagePickerControllerSourceTypeCamera)]) {

UIImagePickerController *picker = [[UIImagePickerController alloc] init];

picker.delegate = self;

picker.allowsEditing = YES; //是否可編輯

//網路攝影機

picker.sourceType = UIImagePickerControllerSourceTypeCamera;

[self presentViewController:picker animated:YES completion:nil];

}else

{

//如果沒有提示使用者

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@”Error” message:@”你沒有網路攝影機” delegate:nil cancelButtonTitle:@”Drat!” otherButtonTitles:nil, nil];

[alert show];

}

}

//拍攝完成後要執行的方法

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info

{

//得到圖片

UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];

//圖片存入相簿

UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil);

[self dismissViewControllerAnimated:YES completion:nil];

}

//點擊Cancel按鈕後執行方法

-(void)imagePickerControllerDidCancel:(UIImagePickerController *)picker

{

[self dismissViewControllerAnimated:YES completion:nil];

}

-(void)openPicLibrary

{

//相簿是可以用模擬器開啟的

if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) {

UIImagePickerController *picker = [[UIImagePickerController alloc] init];

picker.delegate = self;

picker.allowsEditing = YES;

 

//開啟相簿選擇照片

picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;

[self presentViewController:picker animated:YES completion:nil];

}else

{

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@”Error” message:@”你沒有網路攝影機” delegate:nil cancelButtonTitle:@”Drat!” otherButtonTitles:nil, nil];

[alert show];

}

}

-(void)openFlashlight

{

 

 

AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];

if ([device hasTorch]) {

[device lockForConfiguration:nil];

 

[device setTorchMode:AVCaptureTorchModeOff];

 

[device unlockForConfiguration];

}

 

}

-(void)closeFlashlight

{

[self.AVSession stopRunning];

}

– (void)didReceiveMemoryWarning {

[super didReceiveMemoryWarning];

// Dispose of any resources that can be recreated.

}

/*

#pragma mark – Navigation

// In a storyboard-based application, you will often want to do a little preparation before navigation

– (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {

// Get the new view controller using [segue destinationViewController].

// Pass the selected object to the new view controller.

}

*/

@end

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.