iOS 高级绘图之路径剪切
来源:互联网 发布:数据库开发用什么语言 编辑:程序博客网 时间:2024/05/18 03:21
http://tieba.baidu.com/p/3742067941
裁剪(clip)可以将绘制内容限制在一某个区域中,比如将一个图片显示在一个圆或者环上。
上图中,A是没有经过任何处理的图片,直接绘制在视图上。
//读取资源文件夹下的图片"miao.jpg"UIImage *image = [UIImage imageNamed:@"miao.jpg"];//绘制在大小为(100, 100)的矩形区域,图片有压缩现象[image drawInRect:CGRectMake(0, 100, 100, 100)];
B是使用简单的圆形路径进行裁剪。
//保存当前图形上下文的状态,以免影响其它地方的绘制CGContextSaveGState(cxt);//创建直径为100的圆形路径CGPathRef path = CGPathCreateWithEllipseInRect(CGRectMake(100, 100, 100, 100), NULL);CGContextAddPath(cxt, path);//设置裁剪CGContextClip(cxt);//绘制图形,只显示裁剪区域中的部分[image drawInRect:CGRectMake(100, 100, 100, 100)];//恢复图形上下文状态CGContextRestoreGState(cxt);
C是使用Bezier曲线进行裁剪。
CGContextSaveGState(cxt);//创建Bezier曲线表示的直径大的圆UIBezierPath *bPath = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(200, 100, 100, 100)];//设置填充规则为奇偶填充bPath.usesEvenOddFillRule = YES;//给路径创建直径小的圆UIBezierPath *bsPath = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(220, 120, 60, 60)];//将小圆添加到大圆路径上[bPath appendPath:bsPath];//裁剪,两个路径形成一个环[bPath addClip];//绘制图像,填充奇偶规则表示的内部,即环状[image drawInRect:CGRectMake(200, 100, 100, 100)];CGContextRestoreGState(cxt);
通过裁剪,可以实现类似相框、拼图的功能,甚至实现擦除(刮奖)效果。但是裁剪的结果现的比较生硬,并且复杂路径的绘制不是很方便。因此我们继续考察别的技术——蒙版(Mask)。蒙版是将一个没有透明度的灰度图片覆盖在已有的图像上,然后根据颜色值决定图像的显示效果。白色表示全部透过,黑色表示完全不透过,其它是半透明的。而设计师可以用许多工具制作一些精美的蒙版。
- iOS 高级绘图之路径剪切
- Ios高级绘图之路径剪切和蒙版
- iOS开发 高级绘图
- iOS开发UI高级—25Quartz2D使用(绘图路径)
- Matlab绘图系列之高级绘图
- Matlab绘图系列之高级绘图
- Matlab绘图系列之高级绘图
- Matlab绘图系列之高级绘图
- Matlab绘图系列之高级绘图
- IOS之绘图
- iOS 绘图之drawImage
- ios 之 图片压缩 与剪切
- iOS开发之复制粘贴 剪切
- iOS-核心动画高级编程/13-高级绘图
- iOS Quartz2D使用(绘图路径)
- iOS Quartz2D使用(绘图路径)
- ios 学习之你画我话绘图五 构造路径基础知识
- iOS 2D绘图详解(Quartz 2D)之路径(stroke,fill,clip,subpath,blend)
- 编写一个函数,返回一个int数组中存储的最大数值,并在一个简单的程序中测试这个函数。(有缺陷)
- Java面试之一+=赋值符号的使用
- Material Design之TextInputLayout使用示例
- iOS中使用POST向服务器发送图片文件
- poj3469 Dual Core CPU 网络流 sap邻接表模板
- iOS 高级绘图之路径剪切
- 杭电5620 KK's Steel
- 通过控制台一行行读取数据
- 【ChargeSystem】——总结
- Java的位运算符详解实例——与(&)、非(~)、或(|)、异或(^)
- android图像变为黑白
- iOS UIBezierPath 路径裁剪
- javascript动态创建html内容
- 并发 并行 同步 异步 多线程的区别