iOS中 讀取相簿,呼叫系統相機
讀取相簿以及調取相機,將圖片顯示到imageView上
佈局:
1.建立imageView 和 button 併為button一個關聯pickerImage的事件
self.aImageView = [[UIImageView alloc]initWithFrame:CGRectMake(60, 100, 200, 200)];
self.aImageView.backgroundColor = [UIColor redColor];
self.aImageView.userInteractionEnabled = YES;
self.aButton = [[UIButton alloc]initWithFrame:CGRectMake(98, 350, 125, 25)];
self.aButton.backgroundColor = [UIColor blueColor];
[self.aButton addTarget:self action:@selector(pickerImage:) forControlEvents:(UIControlEventTouchUpInside)];
[self.aButton setTitle:@"選擇影像" forState:(UIControlStateNormal)];
[self.view addSubview:self.aButton];
[self.view addSubview:self.aImageView];
[self.aButton release];
[self.aImageView release];
[self addTapGestureOnImageView];
2.因為有的場景需要直接點選圖片更換別的圖片,所以在imageView上新增輕拍動作
- (void)addTapGestureOnImageView{
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(pickerImage:)];
[self.aImageView addGestureRecognizer:tap];
[tap release];
}
3.實現輕拍動作中方法
- (void)pickerImage:(UIButton *)button{
//新增ActionSheet控制元件,提示選項框,調出相機或拍攝圖片
//第一個引數:是行為列表的標題 一般為空
//第二個引數:遵循代理
//第三個引數:取消這個操作按鈕上 顯示的文字
//第四個引數:destructive 破壞性的, 毀滅性的 自己理解吧 反正我寫的是拍照,執行操作的意思
//第五個引數:從相簿選取圖片
UIActionSheet *actionSheet = [[UIActionSheet alloc]initWithTitle:nil delegate:self cancelButtonTitle:@"取消" destructiveButtonTitle:@"拍照" otherButtonTitles:@"從相簿選擇圖片", nil];
//在當前介面顯示actionSheet物件
[actionSheet showInView:self.view];
[actionSheet release];
}
4.實現action代理協議中的方法
- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex{
switch (buttonIndex) {
case 0:
//呼叫系統相機,拍照
[self pickerPictureFromCamera];
break;
case 1:
[self pickerPictureFromPhotosAlbum];
default:
break;
}
}
4.1從攝像頭獲取圖片
- (void)pickerPictureFromCamera{
//判斷前攝像頭是否可用,如果不可用的話,用後攝像頭。如果後攝像頭也不可用的話用手機圖片庫
//判斷前置攝像頭是否可用
if ([UIImagePickerController isCameraDeviceAvailable:UIImagePickerControllerCameraDeviceFront]) {
NSLog(@"用前置攝像頭");
self.imagePC = [[UIImagePickerController alloc]init];
self.imagePC.cameraDevice = UIImagePickerControllerCameraDeviceFront;
[self.imagePC release];
//判斷後置攝像頭是否可用
}else if ([UIImagePickerController isCameraDeviceAvailable:UIImagePickerControllerCameraDeviceRear]){
NSLog(@"用後置攝像頭");
self.imagePC = [[UIImagePickerController alloc]init];
self.imagePC.cameraDevice = UIImagePickerControllerCameraDeviceRear;
[self.imagePC release];
//兩者都不行的話,從手機相簿調取照片
}else{
UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"呼叫攝像頭失敗" message:@"請從手機相簿中選取照片" delegate:self cancelButtonTitle:@"確定" otherButtonTitles:nil, nil];
[alertView show];
[alertView release];
}
//初始化圖片控制器物件
UIImagePickerController *imagePicker = [[UIImagePickerController alloc]init];
//sourceType資源樣式
//設定圖片選擇器選擇圖片的樣式
imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
//設定圖片是否允許編輯
imagePicker.allowsEditing = YES;
//設定圖片選擇器代理物件為這個檢視控制器
imagePicker.delegate = self;
//把相機推出來 模態
[self presentViewController:imagePicker animated:YES completion:nil];
//釋放
[imagePicker release];
}
4.2從手機的圖片庫獲取圖片
- (void)pickerPictureFromPhotosAlbum{
//初始化圖片控制器物件
UIImagePickerController *imagePicker = [[UIImagePickerController alloc]init];
//sourceType資源樣式
//設定圖片選擇器選擇圖片的樣式
imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
//設定圖片是否允許編輯
imagePicker.allowsEditing = YES;
//設定圖片選擇器代理物件為這個檢視控制器
imagePicker.delegate = self;
//把選擇控制器推出來 模態
[self presentViewController:imagePicker animated:YES completion:nil];
//釋放
[imagePicker release];
}
5.將選取好的照片儲存到詳情頁的方法
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{
//以相簿作為字典,從中取出照片
self.aImageView.image = [info objectForKey:UIImagePickerControllerEditedImage];
//把選取框模態回去
[self dismissViewControllerAnimated:YES completion:nil];
}
相關文章
- Android 呼叫系統相機拍照 . 選取本地相簿Android
- iOS呼叫系統相機、相簿裡面的文字顯示英文iOS
- Android呼叫系統相簿和相機拍照Android
- iOS呼叫系統相簿顯示英文標題iOS
- iOS 呼叫系統相簿拍照時顯示英文問題iOS
- H5 file呼叫手機相機和相簿(相容安卓ios,親測有效)H5安卓iOS
- vue iOS 呼叫系統相簿拍照時顯示英文問題VueiOS
- iOS系統相簿基本操作iOS
- Android呼叫系統相機,相容7.0系統Android
- iOS 一行程式碼實現呼叫系統相機與相簿,可配置導航欄背景與字型顏色iOS行程
- iOS呼叫系統相簿顯示英文標題,如何顯示中文呢?iOS
- IOS開發之相機、相簿頁面英文問題iOS
- 相機相簿OC 詳解
- iOS開發問題之:解決iOS網頁呼叫系統相簿顯示英文的問題iOS網頁
- u3d 呼叫android相機和相簿裁剪成圓形3DAndroid
- IOS呼叫相簿顯示英文解決方法iOS
- Android 從手機相簿獲取圖片 uri 路徑 從相機獲取照片Android
- Android:呼叫系統相機實現拍照+裁切(相容7.0以上系統)Android
- Android呼叫相簿、相機(相容6.0、7.0、8.0)所需新增的許可權Android
- 適配Android4.4~Android11,呼叫系統相機,系統相簿,系統圖片裁剪,轉換檔案(對圖片進行上傳等操作)Android
- iOS 相簿選中多張圖片iOS
- Android開發在Activity外申請許可權呼叫相機開啟相簿Android
- android短視訊開發,呼叫相機、相簿,壓縮圖片後上傳Android
- 短視訊程式開發,Android:呼叫系統拍照和相簿Android
- iOS系統中的字型(swift寫法獲取)iOSSwift
- iOS10適配 完美解決相機、相簿等許可權的使用iOS
- C++系統相關操作1 - 呼叫命令列並獲取返回值C++命令列
- 直播軟體開發,影像視訊的讀取與儲存,以及呼叫相機拍攝
- perl中呼叫系統命令
- iOS開發中擷取相機部分畫面,切割sampleBuffer(Crop sample buffer)iOS
- iOS模仿系統相機拍照你不曾注意過的細節iOS
- Android學習之呼叫系統相機拍照、截圖並儲存Android
- PGL系統管理部相簿
- iOS呼叫系統功能與跳轉到系統設定iOS
- 直播預告|OpenHarmony標準系統多媒體子系統之相機解讀
- Android中使用封裝的OKHttp上傳圖片,從相機和相簿中獲取圖片並剪下Android封裝HTTP
- android7.0以上呼叫系統相機拍照並顯示到ImageView上AndroidView
- c#如何讀取相機手機的拍攝時間C#