iOS开发中訪问相冊摄像像头

源代码下载地址http://download.csdn.net/download/jingjingxujiayou/7270479

在AppDelegate.m文件里

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
self.window.rootViewController = [[dateViewController alloc]init];
return YES;
}

dateViewController.h

#import <UIKit/UIKit.h>

@interface dateViewController : UIViewController<UIImagePickerControllerDelegate,UINavigationBarDelegate>
@property(nonatomic,retain)UIImageView* imageview1;
@property(nonatomic,retain)UIImagePickerController* imagepicker;
@end

dateViewController.m

//
// dateViewController.m
// datepick
//
// Created by 5_2 on 14-4-29.
// Copyright (c) 2014年 Frountion. All rights reserved.
// #import "dateViewController.h" @interface dateViewController () @end @implementation dateViewController
@synthesize imageview1,imagepicker; - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
} - (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view. //----------1 从网络载入图片
imageview1 = [[UIImageView alloc]initWithFrame:CGRectMake(10, 50, 300, 200)];
imageview1.backgroundColor = [UIColor yellowColor];
[self.view addSubview:imageview1];
NSURL* url = [[NSURL alloc]initWithString:@"https://www.google.com.hk/images/srpr/logo11w.png"];
NSData* data = [NSData dataWithContentsOfURL:url];
//把data转成image
UIImage* image = [UIImage imageWithData:data];
//显示图片
imageview1.image = image; //把图片转化为数据
NSData* imagedata = UIImageJPEGRepresentation(image, 1);
NSLog(@"%d",imagedata.length); //保存到相冊里面,这个能够到模拟器里的相冊产查看的。
UIImageWriteToSavedPhotosAlbum(image, self, @selector(image:didFinishSavingWithError:contextInfo:), NULL); //---------2 相冊的訪问 UIButton *buttonphoto = [UIButton buttonWithType:UIButtonTypeRoundedRect];
buttonphoto.tag = 100;
buttonphoto.frame = CGRectMake(50, 250, 80, 50);
[buttonphoto setTitle:@"訪问相冊" forState:UIControlStateNormal];
[buttonphoto addTarget:self action:@selector(look:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:buttonphoto]; //---------3 摄像头的訪问
UIButton *buttoncamera = [UIButton buttonWithType:UIButtonTypeRoundedRect];
buttoncamera.tag = 200;
buttoncamera.frame = CGRectMake(50, 310, 80, 50);
[buttoncamera setTitle:@"訪问摄像头" forState:UIControlStateNormal];
[buttoncamera addTarget:self action:@selector(look:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:buttoncamera]; } /*-(void)look:(UIButton*)button
{
UIImagePickerController* imagepicker = [[UIImagePickerController alloc]init];
imagepicker.delegate = self;
//訪问相冊类型的类型
//UIImagePickerControllerSourceTypePhotoLibrary,
//UIImagePickerControllerSourceTypeCamera, ===== 訪问摄像头
//UIImagePickerControllerSourceTypeSavedPhotosAlbum ======= 仅仅能訪问第一列的图片
imagepicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
//以摩擦动画的方式显示
[self presentViewController:imagepicker animated:YES completion:^{ }]; if (button.tag == 200) {
//UIImagePickerControllerCameraDeviceFront === 前摄像头
//UIImagePickerControllerCameraDeviceRear === 后摄像头
BOOL isCamrma = [UIImagePickerController isCameraDeviceAvailable:UIImagePickerControllerCameraDeviceRear];
if (!isCamrma) {
NSLog(@"没有摄像头");
return;
}
//摄像头
imagepicker.sourceType = UIImagePickerControllerSourceTypeCamera;
//同意编辑
imagepicker.allowsEditing =YES;
}
}*/ -(void)look:(UIButton*)button
{
if (button.tag == 100) {
imagepicker = [[UIImagePickerController alloc]init];
imagepicker.delegate = self;
//訪问相冊类型的类型
//UIImagePickerControllerSourceTypePhotoLibrary,
//UIImagePickerControllerSourceTypeCamera, ===== 訪问摄像头
//UIImagePickerControllerSourceTypeSavedPhotosAlbum ======= 仅仅能訪问第一列的图片
imagepicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
//以摩擦动画的方式显示
[self presentViewController:imagepicker animated:YES completion:^{ }]; }else { //注意摄像头的訪问须要在真机上进行 //UIImagePickerControllerCameraDeviceFront === 前摄像头
//UIImagePickerControllerCameraDeviceRear === 后摄像头
BOOL isCamrma = [UIImagePickerController isCameraDeviceAvailable:UIImagePickerControllerCameraDeviceRear];
if (!isCamrma) {
NSLog(@"没有摄像头");
return;
}
//摄像头
imagepicker.sourceType = UIImagePickerControllerSourceTypeCamera;
//同意编辑
imagepicker.allowsEditing =YES;
}
} //---------2 相冊的訪问
#pragma mark - UIImagePickerControllerDelegate //相冊选中之后调用
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
//UIImagePickerControllerOriginalImage === 取原始图片
//UIImagePickerControllerEditedImage === 去编辑以后的图片
UIImage* image = [info objectForKey:UIImagePickerControllerEditedImage];
imageview1.image = image;
NSLog(@"info = %@",info);
[picker dismissViewControllerAnimated:YES completion:nil];
}
//取消按钮的点击事件
-(void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
{
[picker dismissViewControllerAnimated:YES completion:NULL];
}
//将图片保存
- (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo
{
NSLog(@"error = %@",error);
} - (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
} @end

iOS开发中訪问相冊摄像像头的更多相关文章

  1. iOS开发中的MVC设计模式

    我们今天谈谈cocoa程序设计中的 模型-视图-控制器(MVC)范型.我们将从两大方面来讨论MVC: 什么是MVC? M.V.C之间的交流方式是什么样子的? 理解了MVC的概念,对cocoa程序开发是 ...

  2. IOS开发中UI编写方式——code vs. xib vs.StoryBoard

    最近接触了几个刚入门的iOS学习者,他们之中存在一个普遍和困惑和疑问,就是应该如何制作UI界面.iOS应用是非常重视用户体验的,可以说绝大多数的应用成功与否与交互设计以及UI是否漂亮易用有着非常大的关 ...

  3. iOS开发中的4种数据持久化方式【二、数据库 SQLite3、Core Data 的运用】

                   在上文,我们介绍了ios开发中的其中2种数据持久化方式:属性列表.归档解档.本节将继续介绍另外2种iOS持久化数据的方法:数据库 SQLite3.Core Data 的运 ...

  4. iOS开发中你是否遇到这些经验问题

    前言 小伙伴们在开发中难免会遇到问题, 你是如何解决问题的?不妨也分享给大家!如果此文章其中的任何一条问题对大家有帮助,那么它的存在是有意义的! 反正不管怎样遇到问题就要去解决问题, 在解决问题的同时 ...

  5. iOS 开发中常见的设计模式

    最近有小伙伴问到在iOS开发中的几种设计模式,这里摘录一下别人的总结(因为已经感觉总结得差不多了,适用的可以阅读一下) 首先是开发中的23中设计模式分为三大类:1.创建型 2.结构型 3.行为型 (i ...

  6. iOS开发中遇到的一些问题及解决方案【转载】

    iOS开发中遇到的一些问题及解决方案[转载] 2015-12-29 [385][scrollView不接受点击事件,是因为事件传递失败] // //  MyScrollView.m //  Creat ...

  7. iOS开发中各种关键字的区别

    1.一些概念 1.浅Copy:指针的复制,只是多了一个指向这块内存的指针,共用一块内存. 深Copy:内存的复制,两块内存是完全不同的, 也就是两个对象指针分别指向不同的内存,互不干涉. 2.atom ...

  8. 总结iOS开发中的断点续传那些事儿

    前言 断点续传概述 断点续传就是从文件赏赐中断的地方重新开始下载或者上传数据,而不是从头文件开始.当下载大文件的时候,如果没有实现断点续传功能,那么每次出现异常或者用户主动的暂停,都会从头下载,这样很 ...

  9. iOS开发中静态库之".framework静态库"的制作及使用篇

    iOS开发中静态库之".framework静态库"的制作及使用篇 .framework静态库支持OC和swift .a静态库如何制作可参照上一篇: iOS开发中静态库之" ...

随机推荐

  1. CREATE GROUP - 定义一个新的用户组

    SYNOPSIS CREATE GROUP name [ [ WITH ] option [ ... ] ] where option can be: SYSID gid | USER usernam ...

  2. Webpack 入门(一):安装 / 打包 / 命令行

    一:安装webpack和基本环境搭建 新建一个工作的文件夹(我取的名字叫Webpack) 打开命令行,cd进入该文件夹 //初始化一下npm > E:\work\Webpack>npm i ...

  3. 浅谈JS之text/javascript和application/javascript

    问题描述: JS在IE8以下浏览器运行异常 代码: <script>标签是这样子写的: <script type="application/javascript" ...

  4. 在mac下做web开发,shell常用的快捷键

    Ctrl + A 光标移动到行首 Ctrl + E 光标移动到行末 Ctrl + K 清屏(也可是用clear命令) Command +shift+{} 终端的tab左右切换

  5. sql server使用的注意点及优化点 自备

    1.字符类型建议采用varchar/nvarchar数据类型,并且禁止使用varchar(max).nvarchar(max) 2.金额货币建议采用money数据类型  (*) 3.自增长标识建议采用 ...

  6. Win2008 Server MySql安装包详细安装教程

    首先去官网下载 下载MySql 下载地址:http://downloads.mysql.com/archives/community/ 我这里选择MSI的32位安装包安装,服务器系统32位的. 安装M ...

  7. UvaLive 4863 Balloons(贪心)

    题意: 给定n个队伍, 然后A房间有a个气球, B房间有b个气球, 然后给出每个队伍所需要的气球数量和到A B房间的距离, 求把气球全部送到每个队伍的最短距离. 分析: 在气球充足的情况下, 那么我们 ...

  8. LeetCode 167. Two Sum II – Input array is sorted

    Given an array of integers that is already sorted in ascending order, find two numbers such that the ...

  9. 如何用nfs命令烧写内核和文件系统(网络下载文件到nandflash)(未完)

    使用tftp下载烧写 a.设uboot里的ip地址 set ipaddr 192.168.1.17(uboot的ip设置成同网段) set serverip 192.168.1.5(电脑本机作为服务i ...

  10. spark streaming基于Kafka的开发

    spark streaming使用Kafka数据源进行数据处理,本文侧重讲述实践使用. 一.基于receiver的方式 在使用receiver的时候,如果receiver和partition分配不当, ...