iOS 调用拍照、选择本地相册、上传功能---未完善。
1.新建viewController 拖入一个Button,添加点击事件,使用代理方法
<UIActionSheetDelegate,UIImagePickerControllerDelegate>
2.代码如下- (IBAction)DoChoose:(id)sender {
UIActionSheet *sheet;
//检查是否有摄像头功能
if (![UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) { sheet = [[UIActionSheet alloc]
initWithTitle:@"选择"
delegate:self
cancelButtonTitle:nil
destructiveButtonTitle:@"取消"
otherButtonTitles:@"拍照",@"从相册选择", nil];
}
else
{
sheet = [[UIActionSheet alloc]
initWithTitle:@"选择"
delegate:self
cancelButtonTitle:nil
destructiveButtonTitle:@"取消"
otherButtonTitles:@"从相册选择", nil];
}
sheet.tag=;
[sheet showInView:self.view];
}
//代理方法,启用拍照或使用相册功能
-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
{
if (actionSheet.tag == ) {
NSUInteger sourceType = ;
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
switch (buttonIndex) {
case :
return;
case :
sourceType = UIImagePickerControllerSourceTypeCamera;
break;
case :
sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
break;
default:
break;
}
}
else
{
if (buttonIndex ==) {
return;
}
else
{
sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
}
} UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init]; imagePickerController.delegate = self; imagePickerController.allowsEditing = YES; imagePickerController.sourceType = sourceType; [self presentViewController:imagePickerController animated:YES completion:^{}];
}
}
//返回的图片数据
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info
{
//返回到主界面中
[picker dismissViewControllerAnimated:YES completion:^{}];
//获取返回的图片
UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
//压缩图片
NSData *imageData = UIImageJPEGRepresentation(image, 0.5);
//沙盒,准备保存的图片地址和图片名称
NSString *fullPath = [[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"] stringByAppendingPathComponent:@"x.jpg"];
//将图片写入文件中
[imageData writeToFile:fullPath atomically:NO];
//通过路径获取到保存的图片,可以在主界面上的image进行预览
UIImage *saveImage = [[UIImage alloc]initWithContentsOfFile:fullPath]; [self.img1 setImage:saveImage]; //将图片变为Base64格式,可以将数据通过接口传给后台
NSData *data = UIImageJPEGRepresentation(saveImage, 1.0f);
NSString *baseString = [data base64Encoding];
}
//关闭拍照窗口
-(void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
{
[self dismissViewControllerAnimated:YES completion:^{}];
}
iOS 调用拍照、选择本地相册、上传功能---未完善。的更多相关文章
- 选择本地文件上传控件 input标签
当要通过控件来选择本地文件上传的时候的一种方式 <input type="file" id="input-file"/> 注意 type类型一定要是 ...
- IOS UIImagePickerController(拍照或者读取相册)
UIImagePickerController ● 使用UIImagePickerController就可以进行拍照或者读取相册 ● 通过sourceType属性来决定拍照还是读取相册 ➢ UII ...
- IOS 调用系统照相机和相册
/** * 调用照相机 */ - (void)openCamera { UIImagePickerController *picker = [[UIImagePickerController all ...
- iOS视频压缩存储至本地并上传至服务器-b
最近做了一个项目,我把其中的核心功能拿出来和大家分享一下,重点还是自己梳理一下. 这里关于视频转码存储我整理了两个方法,这两个方法都是针对相册内视频进行处理的. 1.该方法没有对视频进行压缩,只是将视 ...
- iOS视频压缩存储至本地并上传至服务器
最近做了一个项目,我把其中的核心功能拿出来和大家分享一下,重点还是自己梳理一下. 这里关于视频转码存储我整理了两个方法,这两个方法都是针对相册内视频进行处理的. 1.该方法没有对视频进行压缩,只是将视 ...
- Android WebView选择本地文件上传
This sample demonstrate android webview choose file to upload. I just implement the client code ,the ...
- swift 实现拍照 选择相册
//点击按钮的方法 func photos() { self.showBottomAlert() } /// 屏幕底部弹出的Alert func showBottomAlert(){ let aler ...
- Android 拍照或者从相册获取图片的实现
我们常常会用到上传头像,或者发帖子的时候选择本地图片上传的功能.这个很常见 今天因为app的需求我研究了下.现在分享下. 其实不论是通过拍照还是从相册选取都会用到Intent 这是系统提供给我们用来调 ...
- Android中通过访问本地相册或者相机设置用户头像
目前几乎所有的APP在用户注册时都会有设置头像的需求,大致分为三种情况: (1)通过获取本地相册的图片,经过裁剪后作为头像. (2)通过启动手机相机,现拍图片然后裁剪作为头像. (3)在APP中添加一 ...
随机推荐
- Java数据结构和算法之链表
三.链表 链结点 在链表中,每个数据项都被包含在‘点“中,一个点是某个类的对象,这个类可认叫做LINK.因为一个链表中有许多类似的链结点,所以有必要用一个不同于链表的类来表达链结点.每个LINK对象中 ...
- 几种循环语句 ,break,continue语句用法
Java有非常灵活的三循环机制.可以使用以下三种循环之一: while 循环 do...while 循环 for 循环while循环是一个控制结构,可以重复的特定任务次数.在执行时,如果布尔表达式的结 ...
- 转weblogic 10.3新建域
一.安装前准备 1.解决linux中文乱码问题 修改/etc/sysconfig/i18n文件 #LANG="en_US.UTF-8"#SUPPORTED="en_US. ...
- hmtl初学
hmtl+css实现小车轮子转动! <!DOCTYPE html> <html> <head lang="en"> <meta ...
- QSqlTableModel 使用方法(转)
Qt QSqlTableModel 使用心得 连接数据库 执行sql查询,条件显示,排序 获取记录数,列数以及记录内容,字段内容 新增,修改,删除,恢复 其它 1---------------连接数据 ...
- SSH 创建证书认证
*******chmod 600 195-tempuser.txt******* useradd tempusersu tempusercdmkdir .sshchmod 700 .sshcd .ss ...
- 万恶的ViewBag
作个记录,鼓捣了一晚上,他竟然把订单事情给我篡改了 ViewBag.orderNo="20150613202108844"; 页面上出来的竟然是20150613202108840 ...
- [家里蹲大学数学杂志]第053期Legendre变换
$\bf 题目$. 设 $\calX$ 是一个 $B$ 空间, $f:\calX\to \overline{\bbR}\sex{\equiv \bbR\cap\sed{\infty}}$ 是连续的凸泛 ...
- 只适用于HTML的DOM对象
前面,已经学习了如何对树结构进行遍历,并添加.删除.修改任何XML文档中的节点.但是,还有一些对象和属性石只适用于HTML的.列如,document.body就是一个纯HTML对象.只要HTML文档中 ...
- Angular(2)
1.自定义指令,直接栗子: note:定义指定是驼峰,2部分 前缀+作用,but 调用 改驼峰首字母大写处为 (-首字母小写) <!DOCTYPE html><html lang= ...