UIImage 切割
2015-11-24 22:15
453 查看
本人应届生一枚,干了两周的工作,明天即将开始属于我的一个IOS项目了,但是我被老板开了。正好可以学学大神的样子,写写博客,如果有什么错误的还请留言指教,提前表示感谢。
本文参照了两篇文章
http://book.51cto.com/art/201404/436841.htm
先上图{原图奥}
![](http://img.blog.csdn.net/20151124221831013?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://img.blog.csdn.net/20151124222011299?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
这是效果图
如何实现这样的切割效果呢?代码如下
UIImage *image=[UIImage
imageNamed:@"1"];
CGImageRef ref=CGImageCreateWithImageInRect([image
CGImage], CGRectMake(0,
0, 100,
100));//1
UIImage *image2=[UIImage
imageWithCGImage:ref];//2
UIImageView *imageV=[[UIImageView
alloc]initWithFrame:CGRectMake(100,
100, 100,
100)];
imageV.image=image2;
[self.view
addSubview:imageV];
实际上着段代码的核心主要是 步骤1 和步骤2
UIImage: 虽然可以加载、显示各种格式的位图,甚至可以同时加载图片,
但UIImage的功能依然有限,它不能对图片进行缩放、旋转,
不能"挖取"源图片的指定区域等,
这些功能可借助Quartz 2D的CGImageRef来实现。
UIImage与CGImageRef之间可以相互转换,CGImageRef并不是面向对象的API,也不是类,
是一个指针类型,Quartz
2D对CGImageRef的定义为:
typedef struct CGImage *CGImageRef;,
由此可见,CGImageRef只是一个指针类型。
如果已有UIImage,程序可以调用UIImage的CGImage方法获取它封装的CGImageRef。就是步骤1;
如果已有CGImageRef,将它包装成UIImage也很简单,调用UIImage的imageWithCGImage:方法即步骤2.
本文参照了两篇文章
http://book.51cto.com/art/201404/436841.htm
先上图{原图奥}
这是效果图
如何实现这样的切割效果呢?代码如下
UIImage *image=[UIImage
imageNamed:@"1"];
CGImageRef ref=CGImageCreateWithImageInRect([image
CGImage], CGRectMake(0,
0, 100,
100));//1
UIImage *image2=[UIImage
imageWithCGImage:ref];//2
UIImageView *imageV=[[UIImageView
alloc]initWithFrame:CGRectMake(100,
100, 100,
100)];
imageV.image=image2;
[self.view
addSubview:imageV];
实际上着段代码的核心主要是 步骤1 和步骤2
UIImage: 虽然可以加载、显示各种格式的位图,甚至可以同时加载图片,
但UIImage的功能依然有限,它不能对图片进行缩放、旋转,
不能"挖取"源图片的指定区域等,
这些功能可借助Quartz 2D的CGImageRef来实现。
UIImage与CGImageRef之间可以相互转换,CGImageRef并不是面向对象的API,也不是类,
是一个指针类型,Quartz
2D对CGImageRef的定义为:
typedef struct CGImage *CGImageRef;,
由此可见,CGImageRef只是一个指针类型。
如果已有UIImage,程序可以调用UIImage的CGImage方法获取它封装的CGImageRef。就是步骤1;
如果已有CGImageRef,将它包装成UIImage也很简单,调用UIImage的imageWithCGImage:方法即步骤2.
相关文章推荐
- Java Topology Suite (JTS)与空间数据模型
- [TwistedFate]UITableViewCell自定义-02
- 随意细解:UI --UITableView编辑
- 使用requirejs加载多个插件
- Java循环跳转语句之 continue和多重循环
- UIViewController的生命周期及iOS程序执行顺序
- 31.UILable⾃适应⾼度
- 爬爬爬之路:UI(十) UITableView(二) UITableView编辑 UITableViewCell移动
- Kendo UI的datasource批量更新的扩展方法
- 30.自定义UITableViewCell第一章
- 【IOS】UILabel 属性及方法
- 29.UITableView表视图第四章(添加高级)
- vue+webpack在“双十一”导购产品的技术实践
- UITableViewCell的选中时的颜色设置
- 【NGUI】通过射线检测被遮挡的物体
- 使用JAXP进行DOM解析( DocumentBuilderFactory、DocumentBuilder、Document)
- 28.UITableView表视图第三章(移动和编辑删除和添加)
- UI学习 第十章 KVC    KVO    通知
- UI学习 第九章 委托(代理)设计模式      单例设计模式
- UI学习 第八章 导航控制器