您的位置:首页 > 产品设计 > UI/UE

UIImage 切割

2015-11-24 22:15 453 查看
本人应届生一枚,干了两周的工作,明天即将开始属于我的一个IOS项目了,但是我被老板开了。正好可以学学大神的样子,写写博客,如果有什么错误的还请留言指教,提前表示感谢。

本文参照了两篇文章
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.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: