摄像头拍照上传

今天研究UIImagePickerControlle这个类,用它来打开摄像头和本地照片库。找到一个好的办法也是比较简单的方法来将选择好的图片显示我们想要的UIImageView上,下面通过代码来详细讲解.

这是我的ActionSheet 协议事件

#pragma mark - ActionSheetDelegate

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

{

photoPicker = [[PhotoPickerControlleralloc]initWithDelegate:self];

photoPicker.useCameraName = actionSheet.title;

if(buttonIndex ==
0)

{

/*选择已有照片*/

[selfLocalPhoto];

}

else
if(buttonIndex ==1)

{

/*拍照从相机获取*/

[selftakePhoto];

}

}

图片:

当点击第一项时调用:

#pragma mark - 本地照片库

-(void)LocalPhoto

{

UIImagePickerController *picker = [[UIImagePickerControlleralloc]init];

picker.sourceType =UIImagePickerControllerSourceTypePhotoLibrary;  //类型

picker.delegate =self;  //协议

picker.allowsEditing =YES;

[selfpresentViewController:picker
animated:YEScompletion:nil];

}

当点击第二项时调用:

#pragma mark - 从相机获取

-(void)takePhoto

{

if ([UIImagePickerControllerisSourceTypeAvailable:
UIImagePickerControllerSourceTypeCamera])

{

UIImagePickerController *picker = [[UIImagePickerControlleralloc]
init];

picker.delegate =self;

picker.allowsEditing =YES;

picker.sourceType =UIImagePickerControllerSourceTypeCamera;

[selfpresentViewController:picker
animated:YEScompletion:nil];

}

else

{

UIAlertView *alerView = [[UIAlertViewalloc]initWithTitle:@"无法拍照"
message:@"此设备拍照功能不可用" delegate:selfcancelButtonTitle:@"确定"otherButtonTitles:nil];

[alerViewshow];

}

}

下面是你选择照片调用的协议方法:

#pragma mark - UIImagePickerCont≥rollerDelegate

/*当选择一张图片后进入*/

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

{

NSString *type = [infoobjectForKey:UIImagePickerControllerMediaType];  //得到类型

if([typeisEqualToString:(NSString *)kUTTypeImage])

{

UIImage *image = [infoobjectForKey:UIImagePickerControllerEditedImage];  //得到相机图片

if (!image)

{

image = [info objectForKey:UIImagePickerControllerOriginalImage];

}

[selfperformSelector:@selector(uploadUserHeadPicture:)withObject:image
afterDelay:0.01];

[picker dismissViewControllerAnimated:YEScompletion:nil];

}

}

- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker

{

[picker dismissViewControllerAnimated:YEScompletion:nil];

}

/*上传图片*/

- (void)uploadUserHeadPicture:(UIImage *)image

{

NSArray *dirPaths =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,
YES);

NSString * docsDir = [dirPaths
objectAtIndex:0]; 
//得到documen目录下

NSData *imageData =
UIImagePNGRepresentation(image);
//将图片转化为png

databasePath = [NSStringstringWithFormat:@"%@/%@",docsDir,HeadImgName];//图片文件完整的路径

[imageDatawriteToFile:databasePathatomically:YES];//将图片写入到文件中去

UIAlertView *alert = [[UIAlertViewalloc]initWithTitle:@"提示"message:@"上传成功"
delegate:nilcancelButtonTitle:@"确定"otherButtonTitles:nil,nil];

[alertshow];

[self.mTableViewreloadData];

}

//此时主要代码已经完成如果你要显示你选择的图片只需通过

[UIImageimageWithContentsOfFile:databasePath];加载就是了。

HeadImgName 是个宏定义

#define HeadImgName @"head.png"

做完这些后可以通过iFunBox软件查看你的应用程序document目录下面是否保存有你刚刚上传的图片。

当然往往项目里面还是会把它保存到服务器中去。

摄像头拍照上传

时间: 2024-10-24 20:59:47

摄像头拍照上传的相关文章

网站建设中使用HTML5实现使用手机摄像头拍照上传的功能

HTML5技术支持WebApp在手机上拍照,显示在页面上并上传到服务器.这是手机网站建设中常见的功能,当然你也可以在其它类型应用中适当使用此技术. 1. 视频流 html5 的 The Media Capture(媒体捕捉) API 提供了对摄像头的可编程访问,用户可以直接用 getUserMedia(请注意目前仅Chrome和Opera支持)获得摄像头提供的视频流.我们需要做的是添加一个Html5 的 Video 标签,并将从摄像头获得的视频作为这个标签的输入来源. <video id="

VS2010开发MFC ActiveX,摄像头拍照上传Webservice(1)

最近工作项目,BS中需要用到摄像头拍照,需要存储本地,同时上传到服务器,尝试使用vc++做ActiveX来实现. 完全没有使用过vc,上网搜索各种知识,初步完成.在这里记录下有帮助的资料. 第一步:编写一个ActiveX 第二部:使用vfw.h开发摄像头拍照功能 第三步:裁剪,转换图并上传 转载出处:http://blog.csdn.net/longhuahaha/article/details/8556964 1.ActiveX的基本概念 ActiveX控件可以看作是一个极小的服务器应用程序,

VS2010开发MFC ActiveX,摄像头拍照上传Webservice(2)

继续记录,第二步开发摄像头拍照功能. 使用vfw.h开发摄像头拍照功能,关于vfw网上有很多文章,很多代码可以参考 参考:http://blog.163.com/huangqiao_8/blog/static/33900492008017111847364/ Vedio for Windows 是WIN32 SDK 中多媒体编程SDK 的视频开发工具.在微软的Visual C ++中提供了Vedio for Windows 的头文件vfw.h 和库文件vfw32.lib. 在ActiveX中显示

html5调用手机摄像头,实现拍照上传功能

今天做手机网站,想实现手机扫描二维码功能.首先实现在浏览器中调用手机摄像头,实现拍照功能并且把拍下的照片显示在页面并上传到服务器上,然后再在服务器端进行分析. 首先实现在浏览器中调用摄像头,当然用现在火的不行的html5,html5中的<video>标签,并将从摄像头获得视频作为这个标签的输入来源.实现拍照功能的html5代码: <article> <style scoped> video { transform: scaleX(-1); } p { text-alig

Android应用开发之使用PhoneGap实现拍照上传功能

看这里:Android应用开发之使用PhoneGap实现拍照上传功能 在之前的使用Intellij Idea 搭建PhoneGap Android开发环境以及Android应用开发之使用PhoneGap实现位置上报功能两篇文章中,我们学习了phonegap Android环境的搭建以及phonegap获取位置信息自动上报等,本篇在之前的基础上,我们继续进行PhoneGap Android应用的开发,通过PhoneGap调用摄像头实现拍照自动上传的功能. 整体的学习思路大概是这样:index.ht

cordova 拍照上传!

1,安装需要的插件 不管是从相册中选择图片上传,还是拍照上传.我们都需要如下先安装如下三个插件:Camera(相机).file(文件访问操作).fileTransfer(文件传输). 如果没有安装的话,先安装下: 1 2 3 cordova plugin add cordova-plugin-camera cordova plugin add cordova-plugin-file cordova plugin add cordova-plugin-file-transfer 2,选择设备照片并

微信公众平台前端人员对接(微信拍照上传)

前言: 1.本篇主要介绍前端如何对接微信公众平台 2.示例选取微信拍照上传 3.微信JS-SDK说明文档 4.企业号开发者中心 5.请一定要确认自己的帐号类型是否拥有使用微信某项功能的权限,要不然方法回调不起作用 6.企业号对接功能检测图如下: 步骤: 1.确认设置安全域名(设置后,可在该域名下进行测试) 2.获取到AppID和AppSecret 3.通过AppID和AppSecret得到access_token a.请求方式get b.请求链接https://api.weixin.qq.com

php实现手机拍照上传头像功能

现在手机拍照很火,那么如何使用手机拍照并上传头像呢?原因很简单,就是数据传递,首先手机传递照片信息,这个就不是post传递 也不是get函数传递, 这个另外一种数据格式传递,使用的是$GLOBALS ['HTTP_RAW_POST_DATA'],这个系统函数跟post很相似,但是$GLOBALS ['HTTP_RAW_POST_DATA']支持的数据格式更丰富些,详细的区别请自己百度谷歌. 设计流程就是: $GLOBALS ['HTTP_RAW_POST_DATA']传递照片数据流(二进制)--

HTML5手机端拍照上传

1.accept="image/*" capture="camera" 自动调用手机端拍照功能 accept="image/*" capture="camera" 2.当表单提交时候有文件的时候,需要加上 var formData = new FormData($( "form" )[0]); 3.示例代码: <!DOCTYPE html> <html> <head> &