iOS UIImagePickerController(拍照萄唇、拍攝照片、選取照片)~demo

//聯(lián)系人:石虎QQ: 1224614774昵稱:嗡嘛呢叭咪哄

/**

注意點(diǎn): 1.看 GIF 效果圖.

2.看連線視圖的效果圖.

3.看實(shí)現(xiàn)代碼(直接復(fù)制實(shí)現(xiàn)效果).

4.此 dome 必須使用真機(jī)才可以測(cè)試,模擬器是不支持打開(kāi)照相機(jī)的.

5.在 info.plist 要配置key如圖4.

6.如果是4S 手機(jī) 可以不加這些 key

7.詳情請(qǐng)看: http://blog.csdn.net/shihuboke/article/details/77150958

*/


一术幔、GIF 效果圖:

二另萤、連線視圖的效果圖:

圖1:

圖2:

圖3:

圖4:

/**

注意點(diǎn):在 info.plist 里面加 key.

1.NSCameraUsageDescription ->相機(jī)

2.NSMicrophoneUsageDescription ->麥克風(fēng)

3.NSCameraUsageDescription ->相機(jī)

*/

三、實(shí)現(xiàn)代碼:

=========================

===================================================

===================

控制器1:

//

//? ViewController.m

//圖片選擇器~dome

//

//? Created by石虎on 2017/8/13.

//? Copyright ? 2017年shihu. All rights reserved.

//

#import"ViewController.h"

#import//資產(chǎn)庫(kù)框架

#import//移動(dòng)核心服務(wù)框架

//設(shè)置委托協(xié)議

@interfaceViewController()

UINavigationControllerDelegate>

//拍照

- (IBAction)takePhoto:(UIButton*)sender;

//拍攝視頻

- (IBAction)shootVideo:(UIButton*)sender;

//選取照片

- (IBAction)selectPhotos:(UIButton*)sender;

//圖像選擇控制器

@property(nonatomic,strong)UIImagePickerController*picker;

@end

@implementationViewController

- (void)viewDidLoad {

[superviewDidLoad];

//初始化圖像選擇控制器

_picker= [[UIImagePickerControlleralloc]init];

//遵守代理

_picker.delegate=self;

}

#pragma mark -拍照

- (IBAction)takePhoto:(UIButton*)sender {

//如果拍攝的攝像頭可用

if([UIImagePickerControllerisSourceTypeAvailable:

UIImagePickerControllerSourceTypeCamera])

{

//將sourceType設(shè)為UIImagePickerControllerSourceTypeCamera代表拍照或拍視頻

_picker.sourceType=UIImagePickerControllerSourceTypeCamera;

//設(shè)置拍攝照片

_picker.cameraCaptureMode=UIImagePickerControllerCameraCaptureModePhoto;

//設(shè)置使用手機(jī)的后置攝像頭(默認(rèn)使用后置攝像頭)

_picker.cameraDevice=UIImagePickerControllerCameraDeviceRear;

//設(shè)置使用手機(jī)的前置攝像頭特愿。

//picker.cameraDevice = UIImagePickerControllerCameraDeviceFront;

//設(shè)置拍攝的照片允許編輯

_picker.allowsEditing=YES;

}else{

NSLog(@"模擬器無(wú)法打開(kāi)攝像頭");

}

//顯示picker視圖控制器

[selfpresentViewController:_pickeranimated:YEScompletion:nil];

}

#pragma mark -拍攝視頻

- (IBAction)shootVideo:(UIButton*)sender {

//如果拍攝的攝像頭可用

if([UIImagePickerControllerisSourceTypeAvailable:

UIImagePickerControllerSourceTypeCamera])

{

//將sourceType設(shè)為UIImagePickerControllerSourceTypeCamera代表拍照或拍視頻

_picker.sourceType=UIImagePickerControllerSourceTypeCamera;

//將mediaTypes設(shè)為所有支持的多媒體類型

_picker.mediaTypes= [UIImagePickerController

availableMediaTypesForSourceType:

UIImagePickerControllerSourceTypeCamera];

//設(shè)置拍攝視頻

_picker.cameraCaptureMode=UIImagePickerControllerCameraCaptureModeVideo;

//設(shè)置拍攝高質(zhì)量的視頻

_picker.videoQuality=UIImagePickerControllerQualityTypeHigh;

}else{

NSLog(@"模擬器無(wú)法打開(kāi)攝像頭");

}

//顯示picker視圖控制器

[selfpresentViewController:_pickeranimated:YEScompletion:nil];

}

#pragma mark -選取照片

- (IBAction)selectPhotos:(UIButton*)sender {

//設(shè)置選擇載相冊(cè)的圖片或視頻

_picker.sourceType=UIImagePickerControllerSourceTypePhotoLibrary;

//是否允許編輯

_picker.allowsEditing=NO;

//顯示picker視圖控制器

[selfpresentViewController:_pickeranimated:YEScompletion:nil];

}

#pragma mark -圖像選擇控制器代理實(shí)現(xiàn)

//當(dāng)?shù)玫秸掌蛘咭曨l后仲墨,調(diào)用該方法

-(void)imagePickerController:(UIImagePickerController*)picker

didFinishPickingMediaWithInfo:(NSDictionary*)info

{

NSLog(@"info--->成功:%@", info);

//獲取用戶拍攝的是照片還是視頻

NSString* mediaType = [infoobjectForKey:UIImagePickerControllerMediaType];

//判斷獲取類型:圖片勾缭,并且是剛拍攝的照片

if([mediaTypeisEqualToString:(NSString*)kUTTypeImage]

&& picker.sourceType==UIImagePickerControllerSourceTypeCamera)

{

UIImage*theImage =nil;

//判斷揍障,圖片是否允許修改

if([pickerallowsEditing])

{

//獲取用戶編輯之后的圖像

theImage = [infoobjectForKey:UIImagePickerControllerEditedImage];

}else{

//獲取原始的照片

theImage = [infoobjectForKey:UIImagePickerControllerOriginalImage];

}

//保存圖片到相冊(cè)中

UIImageWriteToSavedPhotosAlbum(theImage,self,nil,nil);

}elseif([mediaTypeisEqualToString:(NSString*)kUTTypeMovie]){//判斷獲取類型:視頻,并且是剛拍攝的視頻

//獲取視頻文件的url

NSURL* mediaURL = [infoobjectForKey:UIImagePickerControllerMediaURL];

//創(chuàng)建ALAssetsLibrary對(duì)象并將視頻保存到媒體庫(kù)

ALAssetsLibrary*assetsLibrary = [[ALAssetsLibraryalloc]init];

//將視頻保存到相冊(cè)中

[assetsLibrarywriteVideoAtPathToSavedPhotosAlbum:mediaURL

completionBlock:^(NSURL*assetURL,NSError*error)

{

//如果沒(méi)有錯(cuò)誤俩由,顯示保存成功毒嫡。

if(!error)

{

NSLog(@"視頻保存成功!");

}else{

NSLog(@"保存視頻出現(xiàn)錯(cuò)誤:%@", error);

}

}];

}

//隱藏UIImagePickerController

[pickerdismissViewControllerAnimated:YEScompletion:nil];

}

#pragma mark -當(dāng)用戶取消時(shí),調(diào)用該方法

- (void)imagePickerControllerDidCancel:(UIImagePickerController*)picker

{

NSLog(@"用戶取消的拍攝兜畸!");

//隱藏UIImagePickerController

[pickerdismissViewControllerAnimated:YEScompletion:nil];

}

@end

=========================

===================================================

===================

謝謝!!!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末努释,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子咬摇,更是在濱河造成了極大的恐慌伐蒂,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,723評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件肛鹏,死亡現(xiàn)場(chǎng)離奇詭異逸邦,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)在扰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門缕减,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人芒珠,你說(shuō)我怎么就攤上這事桥狡。” “怎么了皱卓?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,998評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵裹芝,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我娜汁,道長(zhǎng)局雄,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,323評(píng)論 1 279
  • 正文 為了忘掉前任存炮,我火速辦了婚禮炬搭,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘穆桂。我一直安慰自己宫盔,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,355評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布享完。 她就那樣靜靜地躺著灼芭,像睡著了一般。 火紅的嫁衣襯著肌膚如雪般又。 梳的紋絲不亂的頭發(fā)上彼绷,一...
    開(kāi)封第一講書(shū)人閱讀 49,079評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音茴迁,去河邊找鬼寄悯。 笑死,一個(gè)胖子當(dāng)著我的面吹牛堕义,可吹牛的內(nèi)容都是我干的猜旬。 我是一名探鬼主播,決...
    沈念sama閱讀 38,389評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼洒擦!你這毒婦竟也來(lái)了椿争?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,019評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤熟嫩,失蹤者是張志新(化名)和其女友劉穎秦踪,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體掸茅,經(jīng)...
    沈念sama閱讀 43,519評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡洋侨,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,971評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了倦蚪。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片希坚。...
    茶點(diǎn)故事閱讀 38,100評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖陵且,靈堂內(nèi)的尸體忽然破棺而出裁僧,到底是詐尸還是另有隱情,我是刑警寧澤慕购,帶...
    沈念sama閱讀 33,738評(píng)論 4 324
  • 正文 年R本政府宣布聊疲,位于F島的核電站,受9級(jí)特大地震影響沪悲,放射性物質(zhì)發(fā)生泄漏获洲。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,293評(píng)論 3 307
  • 文/蒙蒙 一殿如、第九天 我趴在偏房一處隱蔽的房頂上張望贡珊。 院中可真熱鬧,春花似錦涉馁、人聲如沸门岔。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,289評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)寒随。三九已至,卻和暖如春帮坚,著一層夾襖步出監(jiān)牢的瞬間妻往,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,517評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工试和, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留讯泣,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,547評(píng)論 2 354
  • 正文 我出身青樓灰署,卻偏偏與公主長(zhǎng)得像判帮,于是被迫代替她去往敵國(guó)和親局嘁。 傳聞我的和親對(duì)象是個(gè)殘疾皇子溉箕,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,834評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容