IOS - UIImage
IOS中对图片的处理 UIImage
UIImage 继承于NSObject
以下介绍一下UIImage中的方法
首先是我们最经常使用的
通过图片的文件名称来获取这个图片
+ (UIImage *)imageNamed:(NSString *)name
//要注意的是这种方法适用于已经导入到project中的图片
//建议使用该方法获取图片(尤其是ios8系统下)
NSString *imagePath = [[NSBundle mainBundle]pathForResource:@"sun" ofType:@"png"];
UIImage *image = [[UIImage alloc]initWithContentsOfFile:imagePath];
1、+ (UIImage *)imageWithContentsOfFile:(NSString *)path
//通过文件载入指定路径下的文件内容获得新图片
2、+ (UIImage *)imageWithData:(NSData *)data
//通过一个NSData对象来获得图片
3、+ (UIImage *)imageWithData:(NSData *)data scale:(CGFloat)scale
//同上,仅仅是再加上一个图片大小比例,用来改变图片的大小
4、+ (UIImage *)imageWithCGImage:(CGImageRef)cgImage
//使用Quartz 2D对象创建UIImage
5、+ (UIImage *)imageWithCGImage:(CGImageRef)imageRef scale:(CGFloat)scale orientation:(UIImageOrientation)orientation
//制定图片的比例和方向。当中方向是个枚举类。
6、+ (UIImage *)imageWithCIImage:(CIImage *)ciImage
//用一个Core Image 对象创建图像
7、+ (UIImage *)imageWithCIImage:(CIImage *)ciImage scale:(CGFloat)scale orientation:(UIImageOrientation)orientation
//再加上比例和图片方向
8、- (UIImage *)imageWithAlignmentRectInsets:(UIEdgeInsets)alignmentInsets
//返回指定矩形区域内的图像
9、+ (UIImage *)animatedImageNamed:(NSString *)name duration:(NSTimeInterval)duration
//创建一个动态图片。动态图片持续的时间为duration
10、+ (UIImage *)animatedImageWithImages:(NSArray *)images duration:(NSTimeInterval)duration
//用一组图片创建一个动态图片。动态持续时间duration
11、+ (UIImage *)animatedResizableImageNamed:(NSString *)name capInsets:(UIEdgeInsets)capInsets duration:(NSTimeInterval)duration
//创建一个在可变大小的图片上指定矩形区域内的动态图片
12、+ (UIImage *)animatedResizableImageNamed:(NSString *)name capInsets:(UIEdgeInsets)capInsets resizingMode:(UIImageResizingMode)resizingMode duration:(NSTimeInterval)duration
//同上,仅仅是多了一个图片变化的方式。详细来说就是平铺或者拉伸
13、- (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsets
//用制定矩形区域创建图像
14、- (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsets resizingMode:(UIImageResizingMode)resizingMode
//同上。指定图片变化方式
初始化图片
方法的作用在从上面的一些方法中都能找到原型,这里就不一一凝视了
1、– initWithContentsOfFile: //从文件载入图片
2、– initWithData: //用NSData对象初始化图片
3、– initWithData:scale: //用NSData对象,指定的比例,初始化图片
4、– initWithCGImage:
5、– initWithCGImage:scale:orientation:
6、– initWithCIImage:
7、– initWithCIImage:scale:orientation:
绘绘图片
1、– drawAtPoint:
//在指定的点開始绘绘图片,这个点就是图片的做上角顶点
2、- (void)drawAtPoint:(CGPoint)point blendMode:(CGBlendMode)blendMode alpha:(CGFloat)alpha
//在指定的点绘制整个图片,并使用自己定义图片复合模式,并设置透明度
3、– drawInRect:
//在指定区域内绘制图片,可依据须要缩放图片
4、– drawInRect:blendMode:alpha:
//參照上面第二条
5、– drawAsPatternInRect:
//在指定区域内,平铺图片
image的属性
imageOrientation //图片的方向
size //图片的大小size
scale //图片的比例
resizingMode //图片变化方式
CGImage //潜在的Quartz image
CIImage //潜在的Core Image
images //返回一个由图片组成的数组,针对于由一组图片生成的动态图片
duration //返回动态图片持续的时间(即动态图片播放一遍的时间)
capInsets //图片上选定的区域
alignmentRectInsets //图片平铺的区域
//批量上传图片
+(void)requestWithUrl:(NSString *)url params:(NSDictionary *)params picImageArray:(NSArray *)imageArry fileName:(NSArray *)fileNameArray success:(requestSuccess)successBlock progressBlock:(progerss)progress fail:(requestFail)failBlock
{
    if (url==nil) { //给一个默认的把。
。老是写好烦
        url=kTDGeneralURL;
    }
    AFHTTPRequestOperationManager *manager=[AFHTTPRequestOperationManager manager];
    AFHTTPRequestOperation* operation= [manager POST:url parameters:params constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
        if (imageArry) {
            for (int i=0; i<imageArry.count; i++) {
                NSData *picData = UIImageJPEGRepresentation(imageArry[i], 1);
                [formData appendPartWithFileData:picData name:fileNameArray[i] fileName:@"image.jpg" mimeType:@"application/octet-stream"];
            }
        }
    } success:^(AFHTTPRequestOperation *operation, id responseObject) {
        if ([responseObject isKindOfClass:[NSDictionary class]]) {
            successBlock(responseObject);
        }
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        
        failBlock(error);
    }];
    
    [operation setUploadProgressBlock:^(NSUInteger bytesWritten, long long totalBytesWritten, long long totalBytesExpectedToWrite) {
        
        CGFloat pro=totalBytesWritten/(CGFloat)totalBytesExpectedToWrite;
        
        if (progress) {
            progress(pro);
        }
        
    }];
    
    
    [operation start];
    
}
IOS - UIImage的更多相关文章
- iOS - 单例传值 (一)
		点击打开链接 iOS - 单例传值 (二) 单例只会对某个类实例化一次/单例类,对单例这个类实例化一次有且仅有一个对象 你单例初始化,只能初始化一次,然后你指向的对象,其实都是指向一个内存地址, ... 
- iOS-如何使用symbolicatecrash
		iOS-如何使用symbolicatecrash 如何使用symbolicatecrash工具分析iOS Crash文件: 原文地址:[iOS Crash文件分析]-如何使用symbolicatecr ... 
- iOS-函数式编程 && 响应式编程概念
		作为一个iOS developer,那么你一定用过Masnory / SnapKit: Masonry是一个OC开发中,非常好用的自动布局的第三方框架: SnapKit是Masonry团队打造的swi ... 
- iOS-Code Data多线程的封装详解
		Code Data 的单例封装: 很容易发现,系统生成的模版代码将Core Data 的基本的准备(貌似还挺复杂!)都放在 AppDelegate中了,可苹果公司为什么会这么做呢? ... 
- iOS-UIViewController创建的几种方法和UIWindow的介绍
		在上一篇笔记中<iOS-程序启动原理和UIApplication>,http://blog.csdn.net/yang198907/article/details/49735531 在程序 ... 
- iOS 根据UIImage 修改UIImageView Frame (包括截取图片中间部分)
		iOS UIImageView 根据需求调整frame 1.图片的宽和高不相等,截取图片的中间部分,截取的部分Size明确 2.图片的宽度要等于其父视图的类的宽度,然后根据宽度计算高度,保证 图片不变 ... 
- iOS - 滑屏方案
		参考自:iOS开发- 通过ChildViewCotroller ViewController容器 产品增加新的版面,类似于网易新闻,百度新闻,腾讯新闻等新闻客户端首页多屏幕滑屏切换,找了一些开源代码研 ... 
- 照片大管家iOS-实现本地相册、视频、安全保护、社交分享一站式功能,源码开放
		<照片大管家> APP功能: 1.本地照片批量导入与编辑 2.本地视频存储与播放 3.手势密码.数字密码.TouchID安全保护 4.QQ.微信.微博.空间社交分享 5.其他细节功能. 运 ... 
- ios的UIImage的两种不同的图片加载方式 tom猫
		在ios的UI交互设计时,对图片的处理是难免的:不同的处理方式会对内存有不同的影响: ********************************************************* ... 
随机推荐
- [原]Unity3D深入浅出 - GUI控件
			Unity的GUI类提供了丰富的界面控件,通过组合这些控件,完成和用户交互的界面. Lable:绘制文本和图片 Box:绘制一个图形框 Button:绘制一个响应单击事件的按钮 RepeatButto ... 
- 数论/the second wave
			扩展欧几里得算法. void exgcd(int a,int b,int&x,int&y){ if(!b) { x=1;y=0;return ; } exgcd(b,a%b,x,y); ... 
- SharePoint2010 自定义代码登录方法
			转:http://yysyb123.blog.163.com/blog/static/192050472011382421717/ SharePoint2010 自定义代码登录方法 (自定义Form验 ... 
- Javascript 知识点简介
			如何在HTML中引入JS? 所有重定向的HTML标签内都可以嵌入javascript代码. 浮点数不要用 == 来进行判断 var num=0; for(var i=0;i<10;i++) ... 
- 【Tcpcopy】离线回放功能
			最近因调试问题,需要一直进行tcpcopy,拿有问题的包进行测试.决定使用tcpcopy对录制脚本进行回放,以下为我操作的具体步骤.主要是三块 1 下载安装具有离线回放功能的tcpcopy 2 使用t ... 
- HDU 5536  Chip Factory 字典树+贪心
			给你n个数,a1....an,求(ai+aj)^ak最大的值,i不等于j不等于k 思路:先建字典树,暴力i,j每次删除他们,然后贪心找k,再恢复i,j,每次和答案取较大的,就是答案,有关异或的貌似很多 ... 
- MSP430F5438点亮led
			今天只是想点亮一个led灯,因为没有视频,搞得很多的东西都是自己摸,下午本来讲和咨询店家,TMD说好给一点技术支持,结果一点也不给,我真想草泥马了,其实代码早就写出来了,只是哥哥不知道这款开发板还有接 ... 
- OpenGL和pcDuino搭建数字示波器
			看到大神们用Arduino.AVR做示波器,感觉很好玩,手头的pcDuino能不能做呢?一不做二不休,现在我们就自己用pcDuino做一个. 硬件清单: pcDuino一块 杜邦线若干 软件环境: 1 ... 
- 【原】理解Storm拓扑的并行
			Storm入门教程 1. Storm基础 Storm Storm主要特点 Storm基本概念 Storm调度器 Storm配置 Guaranteeing Message Processing(消息处理 ... 
- 50道经典的JAVA编程题(36-40)
			50道经典的JAVA编程题(36-40),今天晚上心情压抑,不爽,继续做题,管它明天考试,我继续我的java,一个周末都在看微机原理看得的很头疼啊~明天该挂科就挂吧,不在乎了~~~ [程序36] Ar ... 
