UIImage 切割

           本人应届生一枚,干了两周的工作,明天即将开始属于我的一个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 2DCGImageRef来实现

              UIImageCGImageRef之间可以相互转换,CGImageRef并不是面向对象的API,也不是类,

                                   是一个指针类型,Quartz 2DCGImageRef的定义为:

                 typedef struct CGImage *CGImageRef;

                                                由此可见,CGImageRef只是一个指针类型

如果已有UIImage,程序可以调用UIImageCGImage方法获取它封装的CGImageRef。就是步骤1;

如果已有CGImageRef,将它包装成UIImage也很简单,调用UIImageimageWithCGImage:方法即步骤2.




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值