UIImagePickerController 的使用

IOS獲取圖片有三種方式:

- UIImagePickerControllerSourceTypePhotoLibrary 相冊(cè)

- UIImagePickerControllerSourceTypeCamera 相機(jī)

- UIImagePickerControllerSourceTypeSavedPhotosAlbum 圖庫(kù)

最好先判斷設(shè)備數(shù)據(jù)來源是否支持

if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) {

}

步驟:

第一步:選擇獲取圖片的方式

UIActionSheet *sheet = [[UIActionSheet alloc] initWithTitle:nil delegate:self cancelButtonTitle:@"取消" destructiveButtonTitle:nil otherButtonTitles:@"拍照",@"從相冊(cè)選取", nil];

[sheet showInView:self.view];

第二部:創(chuàng)建UIImagePickerController

- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {

NSUInteger sourceType = UIImagePickerControllerSourceTypeCamera;

switch (buttonIndex) {

case 0: //相機(jī)

sourceType = UIImagePickerControllerSourceTypeCamera;

break;

case 1: //相冊(cè)

sourceType = UIImagePickerControllerSourceTypePhotoLibrary;

break;

case 2: //取消

return;

break;

default:

break;

}

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

imagePicker.delegate = self;

imagePicker.sourceType = sourceType; //圖片來源

imagePicker.showsCameraControls? = YES;// 設(shè)置是否顯示相機(jī)原生 UI 默認(rèn)yes

imagePicker.allowsEditing = YES; //允許剪切圖片

imagePicker.cameraDevice = UIImagePickerControllerCameraDeviceFront; //前置攝像頭

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

}

第三步:兩個(gè)delegate方法?

確定使用相片

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

[picker dismissViewControllerAnimated:YES completion:nil];

UIImage *image = [info objectForKey:UIImagePickerControllerEditedImage];//使用剪切后的圖片

self.authenPhotoView.imageView.image = image;

}

取消

- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker {

[picker dismissViewControllerAnimated:YES completion:nil];

}


知識(shí)補(bǔ)充:

1 - didFinishPickingMediaWithInfo 中的 info 可以選擇使用的圖片:

UIImagePickerControllerMediaType ?-- ?指定用戶選擇的媒體類型(文章最后進(jìn)行擴(kuò)展)

UIImagePickerControllerOriginalImage -- 原始圖片

UIImagePickerControllerEditedImage -- 修改后的圖片

UIImagePickerControllerCropRect -- 裁剪尺寸

UIImagePickerControllerMediaURL -- 媒體的URL

UIImagePickerControllerReferenceURL -- 原件的URL

UIImagePickerControllerMediaMetadata;當(dāng)來數(shù)據(jù)來源是照相機(jī)的時(shí)候這個(gè)值才有效

UIImage *image = [info objectForKey: UIImagePickerControllerEditedImage ];

2 -? 攝像頭 -> cameraDevice

UIImagePickerControllerCameraDeviceRear -- 后置攝像頭

UIImagePickerControllerCameraDeviceFront -- 前置攝像頭

可以判斷攝像頭是否支持

if ([UIImagePickerController isCameraDeviceAvailable: UIImagePickerControllerCameraDeviceRear]) {

}

3 - 設(shè)置相機(jī)的兩種模式 -> cameraCaptureMode

UIImagePickerControllerCameraCaptureModePhoto -- 照相模式幌墓,默認(rèn)

UIImagePickerControllerCameraCaptureModeVideo -- 錄像模式

imagePickerController.cameraCaptureMode = UIImagePickerControllerCameraCaptureModePhoto;

4 - 媒體類型 -> mediaTypes

需要 #import才能用 kUTTypeImage 和 KUTTypeMovie 。

UIImagePickerControllerMediaType 包含著KUTTypeImage 和KUTTypeMovie ;默認(rèn)kUTTypeImage块差;

imagePickerController.mediaTypes = @[(NSString *)kUTTypeImage, (NSString *)kUTTypeMovie];

4.1 - kUTTypeImage 包含:? ? ? ? ? ?

?kUTTypeImage -- 抽象的圖片類型? ? ? ? ?

? kUTTypeJPEG ? ? ? ? ?

kUTTypeJPEG2000 ? ? ? ? ?

kUTTypeTIFF ? ? ? ??

?kUTTypePICT ? ? ? ? ??

?kUTTypeGIF ? ? ? ?

?kUTTypePNG ? ? ? ??

?kUTTypeQuickTimeImage ? ? ? ? ?

kUTTypeAppleICNS ? ? ??

kUTTypeBMP ? ? ?

kUTTypeICO? ? ? ??

4.2 - kUTTypeMovie 包含: ? ? ? ? ? ?

kUTTypeAudiovisualContent -- 抽象的聲音視頻? ? ? ? ? ?

?kUTTypeMovie -- 抽象的媒體格式(聲音和視頻) ? ? ? ? ? ?

kUTTypeVideo -- 只有視頻沒有聲音? ? ? ? ? ?

?kUTTypeAudio -- 只有聲音沒有視頻? ? ? ? ? ??

kUTTypeQuickTimeMovie ? ? ? ? ??

kUTTypeMPEG ? ? ? ??

?kUTTypeMPEG4 ? ? ? ? ?

kUTTypeMP3 ? ? ? ??

?kUTTypeMPEG4Audio ? ? ? ??

kUTTypeAppleProtectedMPEG4Audio ?

5 - 設(shè)置閃光燈模式 -> cameraFlashMode

UIImagePickerControllerCameraFlashModeOff? = -1 ?// 關(guān)

UIImagePickerControllerCameraFlashModeAuto = 0 ? // 自動(dòng)馆蠕,默認(rèn)

UIImagePickerControllerCameraFlashModeOn? = 1? ? // 開

imagePickerController.cameraFlashMode = UIImagePickerControllerCameraFlashModeOn;

6 - 設(shè)置錄像質(zhì)量 -> videoQuality

UIImagePickerControllerQualityTypeHigh = 0 ? ? // 高質(zhì)量刽锤,highest quality

UIImagePickerControllerQualityTypeMedium = 1 ? // 中質(zhì)量彪蓬,默認(rèn),Wi-Fi

UIImagePickerControllerQualityTypeLow = 2 ? ?// 低質(zhì)量悲立,cellular network

UIImagePickerControllerQualityType640x480 = 3 ? // VGA 質(zhì)量鹿寨,VGA quality

UIImagePickerControllerQualityTypeIFrame1280x720 = 4?

UIImagePickerControllerQualityTypeIFrame960x540 = 5


imagePickerController.videoQuality = UIImagePickerControllerQualityTypeHigh;

7 - 錄像

[imagePickerController startVideoCapture]; ? // 開始錄像

[imagePickerController stopVideoCapture]; ? // 停止錄像

imagePickerController.videoMaximumDuration = 600; ? // 設(shè)置錄像時(shí)間長(zhǎng)度 default is 10 minutes. apply only mediaTypes includes kUTTypeMovie

8 - 自定義相機(jī)視圖

imagePickerController.showsCameraControls = YES; ? //設(shè)置是否顯示相機(jī)原生 UI ;默認(rèn)使用薪夕,為no時(shí)才可以自定義相機(jī)視圖

imagePickerController.cameraOverlayView = myView; ? ? // 自定義相機(jī)視圖

imagePickerController.cameraViewTransform = CGAffineTransformMakeRotation(0.25 * M_PI); ? //改變相機(jī)視圖 - 旋轉(zhuǎn) 45 度脚草,需要輸入的參數(shù)為弧度,45/180 * M_PI原献,1 度 = PI/180 弧度;

參考:http://www.cnblogs.com/QianChia/p/5758377.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末馏慨,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子姑隅,更是在濱河造成了極大的恐慌写隶,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,914評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件讲仰,死亡現(xiàn)場(chǎng)離奇詭異慕趴,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)鄙陡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評(píng)論 2 383
  • 文/潘曉璐 我一進(jìn)店門冕房,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人柔吼,你說我怎么就攤上這事毒费。” “怎么了愈魏?”我有些...
    開封第一講書人閱讀 156,531評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵觅玻,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我培漏,道長(zhǎng)溪厘,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,309評(píng)論 1 282
  • 正文 為了忘掉前任牌柄,我火速辦了婚禮畸悬,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘珊佣。我一直安慰自己蹋宦,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,381評(píng)論 5 384
  • 文/花漫 我一把揭開白布咒锻。 她就那樣靜靜地躺著冷冗,像睡著了一般。 火紅的嫁衣襯著肌膚如雪惑艇。 梳的紋絲不亂的頭發(fā)上蒿辙,一...
    開封第一講書人閱讀 49,730評(píng)論 1 289
  • 那天拇泛,我揣著相機(jī)與錄音,去河邊找鬼思灌。 笑死俺叭,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的泰偿。 我是一名探鬼主播熄守,決...
    沈念sama閱讀 38,882評(píng)論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼甜奄!你這毒婦竟也來了柠横?” 一聲冷哼從身側(cè)響起窃款,我...
    開封第一講書人閱讀 37,643評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤课兄,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后晨继,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體烟阐,經(jīng)...
    沈念sama閱讀 44,095評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,448評(píng)論 2 325
  • 正文 我和宋清朗相戀三年紊扬,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蜒茄。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,566評(píng)論 1 339
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡餐屎,死狀恐怖檀葛,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情腹缩,我是刑警寧澤屿聋,帶...
    沈念sama閱讀 34,253評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站藏鹊,受9級(jí)特大地震影響润讥,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜盘寡,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,829評(píng)論 3 312
  • 文/蒙蒙 一楚殿、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧竿痰,春花似錦脆粥、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至常潮,卻和暖如春弟胀,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評(píng)論 1 264
  • 我被黑心中介騙來泰國(guó)打工孵户, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留萧朝,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,248評(píng)論 2 360
  • 正文 我出身青樓夏哭,卻偏偏與公主長(zhǎng)得像检柬,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子竖配,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,440評(píng)論 2 348

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