图像选择与处理

图像选择器(UIImagePickerController)显示用户的照片库,用户选择照片后,图像选择器返回一个相应的UIImage对象。

要显示图像选择器,可分配并初始化一个UIImagePickerController实例,再设置属性sourceType,以指定用户可从哪些地方选择图像。

UIImagePickerControllerSourceTypeCamera — 相机拍摄

UIImagePickerControllerSourceTypePhotoLibrary — 照片库

UIImagePickerControllerSourceTypeSavedPhotosAlbum — 相机胶卷

照片库除了包含相机胶卷,还有来自其它App创建的图片文件夹:

触发图像选择器的一般实现方法:


- (IBAction)btnTestHandler:(id)sender
{
UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];

imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;

imagePicker.delegate = self;

imagePicker.allowsEditing = YES;

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

[[UIApplication sharedApplication] setStatusBarHidden:YES]; //在iOS7下这句代码无效。
}

要在用户选择图像或取消选择图像时采取相应的措施。首先要为UIImagePickerController实例的delegate属性指定一个类,该类需要遵守协议UIImagePickerControllerDelegate,并实现相应的方法。同时要遵守导航控制器委托UINavigationControllerDelegate,但无需实现该协议的任何方法。


@interface ViewController : UIViewController <UINavigationControllerDelegate, UIImagePickerControllerDelegate>

用户在图像选择器中做出选择时,将自动调用方法imagePickerController:didFinishPickingMediaWithInfo。这个方法接收到了一个NSDictionary对象,它可能包含多项信息:图像本身、编辑后的图像版本(如果允许裁剪/缩放)或有关图像的信息。要获取所需的信息,必须提供相应的键。例如,要获取选定的图像(UIImage),需要使用UIImagePickerControllerOriginalImage键。


- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
[self dismissViewControllerAnimated:YES completion:nil];
UIImage *chosenImage = [info objectForKey:UIImagePickerControllerOriginalImage];
//Do something with the image here
}

用户取消选择图像,会调用到方法imagePickerControllerDidCancel


- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
{
[self dismissViewControllerAnimated:YES completion:nil];
}

Core Image框架是iOS
5.0新增的,它提供了一些非破坏性方法,让您能够将滤镜应用于图像以及执行其他类型的图像分析。要在应用程序使用Core Image,首先需要添加Core
Image框架,再导入其接口文件:


#import <CoreImage/CoreImage.h>

Core Image框架最常用的一个操作是给图像添加滤镜,Core
Image定义了一种新的非破坏性图像类型CIImage,而比较常用的类型是UIImage(通常存在于UIImageView),这两种类型是可以互相转换的:


CIImage *imageToFilter = [[CIImage alloc] initWithImage:self.myImageView.image];

UIImage *myImage = [UIImage imageWithCIImage:imageToFilter];

要应用滤镜,必须知道滤镜的名称及其所需的参数。例如,Core
Image棕色滤镜名为CISepiaTone,它接受一个名为inputIntensity的参数,该参数的取值为0.0和1.0之间的数字(值越大滤镜越强烈),下面的代码为一副图片添加了棕色滤镜:


CIImage *inputImage = [[CIImage alloc] initWithImage:self.myImageView.image];

CIFilter *filter = [CIFilter filterWithName:@"CISepiaTone"];
[filter setDefaults];
[filter setValue:[NSNumber numberWithFloat:1.0] forKey:@"inputIntensity"];
[filter setValue:inputImage forKey:@"inputImage"];

CIImage *outputImage = [filter valueForKey:@"outputImage"];
self.myImageView.image = [UIImage imageWithCIImage:outputImage];

图像选择与处理

时间: 2024-08-03 16:00:03

图像选择与处理的相关文章

TensorFlow实现基于深度学习的图像补全

目录 ■ 简介 ■ 第一步:将图像理解为一个概率分布的样本 你是怎样补全缺失信息的呢? 但是怎样着手统计呢?这些都是图像啊. 那么我们怎样补全图像?  ■ 第二步:快速生成假图像 在未知概率分布情况下,学习生成新样本 [ML-Heavy] 生成对抗网络(Generative Adversarial Net, GAN) 的架构 使用G(z)生成伪图像 [ML-Heavy] 训练DCGAN 现有的GAN和DCGAN实现 [ML-Heavy] 在Tensorflow上构建DCGANs 在图片集上跑DC

利用HTML5技术在Web上实现对图形图像的处理——WebPhotoshop精简版

WebPhotoshop精简版是利用HTML5技术在Web上实现对图形图像的处理,构建易维护.易共享.易于拓展.实时性的Web图形图像处理平台. 精简版功能包括:图形绘制.图像处理.图像操作.完整版包括多人协作操作图像.实时交流.图片搜索,同时实现实时的多人协作处理图形图像技术.(完整版后续上传)一.功能说明:1.图形绘制 实现铅笔.画笔(书法画笔.喷枪.蜡笔.记号笔.水彩画笔)的绘制效果.实现直线.曲线.椭圆(圆).矩形(圆角矩形).三角形(直角三角形.等边三角形.任意三角形).多边形的绘制.

深度学习与计算机视觉(12)_tensorflow实现基于深度学习的图像补全

原文地址:Image Completion with Deep Learning in TensorFlow by Brandon Amos 原文翻译与校对:@MOLLY && 寒小阳 ([email protected]) 时间:2017年4月. 出处:http://blog.csdn.net/han_xiaoyang/article/details/52665396 声明:版权所有,转载请联系作者并注明出 简介 第一步:将图像理解为一个概率分布的样本 你是怎样补全缺失信息的呢? 但是怎

PHP使用GD2库画图,图像无法输出解决方法

在CS6编辑环境下,使用php的GD2库绘制图像,在浏览器上输出可能会出现图像无法输出的情况,目前发现两个解决方法:方法1:用记事本写,再另存为utf-8 no bom的格式. 方法2:在代码中添加ob_clean()函数,清空(擦掉)输出缓冲区. 代码如下: <?php //用其他编辑器打开存储为utf-8 no bom ob_clean();/* 清空(擦掉)输出缓冲区,不加此行可能无法显示图像*/ $height=600; $width=600; //创建一个图像标识符 $im=image

Delphi存取图像完整解决方案

http://blog.sina.com.cn/s/blog_693cf1cf0100plkq.html 对于涉及图像数据的数据库应用程序,图像数据的存取技术是一个关键.由于缺少技术文档及DEMO例程演示,为此笔者在网上搜索了相关资料,有的根本不能用,有的过于繁杂,有的应用范围太窄(如只能适用于BMP图像),有的写得过于简单理解起来十分困难...而且在网上这也是大家比较关心的一个问题.笔者对这个问题进行了反复实作和探索,下边笔者将通过一个完整的简单例子来说明如何保存和显示SQL数据库中的图像数据

你所不知道的html5与html中的那些事(五)——web图像

文章简介: 现在的页面,一般都离不开图像,而怎么做才能让我们的页面中的图像加载的又快又好呢?在优化页面速度的时候还有什么事是你所不知道的呢?     下面看看今天我为大家带来了哪些关于web图像的你所平时不一定关心的事与一些有建设性的建议吧: 1)关于web页面中的图像你需要关注的关键点有那些? 2)web页面中图像的格式选择需要注意什么? 3)<img>标签的用法细节小结?   第一个问题 关于web页面中的图像你需要关注的关键点有那些?  示例图 像示例图中的图片一样,平时我们写页面都会用

Android 一起来看看知乎开源的图片选择库

前言 在实际开发中,图片选择器一直都是必不可少的一个部分,不管是 QQ 头像的设置,还是发送一条装逼的微信朋友圈,都要用到图片选择器来给用户选择他们想要上传的图片,最近知乎开源了一款图片选择库 Matisse 简直美哭了,而且完全遵循 Android 交互设计规范,实在是很良心. 在开始正文之前,先欣赏一下这个图片选择器的效果 是不是感觉相当的简洁好看,反正我是这么认为的. 一.基本使用 1.导入相应的依赖库 Gradle: repositories { jcenter() } dependen

QT开发(九)——QT单元组件

QT开发(九)--QT单元组件 QT有三种单元组件,分别为列表单元组件QListWidget.树形单元组件QTreeWidget.表格单元组件QTableWidget. 一.QListWidget列表单元 1.QListWidget组件简介 QListWidget列表单元组件继承自QListView,是基于单元的列表组件.QListWidget可以显示一个清单,清单中的每个项目是QListWidgetItem的一个实例,每个项目可以通过QListWidgetItem来操作.可以通过QListWi

cacti

Cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户.因此,snmp和rrdtool是cacti的关键. Snmp关系着数据的收集,rrdtool关系着数据存储和图表的生成.snmp抓到数据不是存储在mysql中,而是存在rrdtool生成的rrd文件中(在cacti根目录的rra文件夹下,一般以rra为后缀名称).简单原理图如下: Cacti服务器端安装 安装LAMP系统环境