【深入浅出IOS开发】图形的裁剪
来源:互联网 发布:淘宝 剑三测试激活码 编辑:程序博客网 时间:2024/05/16 07:00
我们要做出以下的效果:
①这里我们要新建一个图层
②得到图层的设备上下文
③在图层中绘制一个大圆,然后渲染到图层
④然后绘制一个小圆,剪切,然后渲染到图层
⑤绘制图片图层中
⑥然后从当前图层中获得图片,显示到View中
- (void)drawRect:(CGRect)rect{ UIImage *imageBackground = [UIImage imageNamed:@"01"]; //1.创建图层,此图大一些作为外框 CGFloat margin = 5; CGFloat imageNewWidth = imageBackground.size.width + margin; CGFloat imageNewHeight = imageBackground.size.width+ margin; UIGraphicsBeginImageContextWithOptions(CGSizeMake(imageNewWidth, imageNewHeight), NO, 0.0); //2.创建设备上下文,此时得到的上下文是图层的上下文。原因是上面创建了图层 CGContextRef ctr = UIGraphicsGetCurrentContext(); //3.在图层中绘制一个大圆,作为外框 CGContextAddEllipseInRect(ctr, CGRectMake(0, 0, imageNewWidth, imageNewHeight)); [[UIColor redColor]set]; CGContextFillPath(ctr); //3.绘制小圆作为剪切图片的用 [[UIColor blueColor]set]; CGContextAddEllipseInRect(ctr, CGRectMake(margin, margin, imageNewWidth - 2*margin, imageNewHeight - 2*margin)); //4.按照当前的模式裁剪,裁剪只对后面绘制的图层有效 对已经绘制的图层无效 CGContextClip(ctr); CGContextStrokePath(ctr); //5.绘制图片 [imageBackground drawAtPoint:CGPointMake(0, 0)]; //6.从当前图层中获得Image UIImage *imageNew = UIGraphicsGetImageFromCurrentImageContext(); //7.结束图层 UIGraphicsEndImageContext(); //8.绘制上文得到的Image到View中 [imageNew drawAtPoint:CGPointMake(0, 0)];}
0 0
- 【深入浅出IOS开发】图形的裁剪
- 【深入浅出IOS开发】图形的裁剪
- 【深入浅出IOS开发】图形上下文栈
- 【深入浅出IOS开发】图形上下文栈
- 【深入浅出IOS开发】使用路径进行绘制图形
- 【深入浅出IOS开发】使用路径进行绘制图形
- 【深入浅出IOS开发】彩票-状态栏的设置
- 【深入浅出IOS开发】彩票-状态栏的设置
- iOS学习笔记-060.图形的基本绘制、图片水印、图片裁剪
- iOS软件开发 裁剪图片
- 【深入浅出ios开发】NSNotificationCenter
- 【深入浅出ios开发】UIActionSheet
- 【深入浅出ios开发】NSNotificationCenter
- 【深入浅出ios开发】UIActionSheet
- iOS 开发 AVPlayer 深入浅出
- [深入浅出iOS库]之图形库CorePlot
- 【深入浅出IOS开发】详解IOS中的程序的启动
- 【深入浅出IOS开发】详解IOS中的程序的启动
- 清华三宝:单车、土豆、N字班
- hibernate4
- unity之复习数据库的增删改查
- MediaRecord断点录音
- throttle&debounce
- 【深入浅出IOS开发】图形的裁剪
- 未能从程序集“System.ServiceModel, Version=3.0.0.0”中加载类型“System.ServiceModel.Activation.HttpModule” 的解决办法
- orcl SQL简单查询语句
- 输出乘法口诀表
- 练习题
- JavaScript_正则表达式_验证手机号
- 《嵌入式linux系统工程师实训教程》读书笔记
- IT增值服务实践心得体会:企业客户的钱比个人客户好赚得多
- 【剑指Offer面试编程题】题目1356:孩子们的游戏(圆圈中最后剩下的数)--九度OJ