原地址:http://www.cnblogs.com/yuanxiaoping_21cn_com/archive/2012/03/24/2415706.html
0 CGContextRef context = UIGraphicsGetCurrentContext(); 设置上下文
1 CGContextMoveToPoint 开始画线
2 CGContextAddLineToPoint 画直线
4 CGContextAddEllipseInRect 画一椭圆
4 CGContextSetLineCap 设置线条终点形状
4 CGContextSetLineDash 画虚线
4 CGContextAddRect 画一方框
4 CGContextStrokeRect 指定矩形
4 CGContextStrokeRectWithWidth 指定矩形线宽度
4 CGContextStrokeLineSegments 一些直线
5 CGContextAddArc 画已曲线 前俩店为中心 中间俩店为起始弧度 最后一数据为0则顺时针画 1则逆时针
5 CGContextAddArcToPoint(context,0,0, 2, 9, 40);//先画俩条线从point 到 弟1点 , 从弟1点到弟2点的线 切割里面的圆
6 CGContextSetShadowWithColor 设置阴影
7 CGContextSetRGBFillColor 这只填充颜色
7 CGContextSetRGBStrokeColor 画笔颜色设置
7 CGContextSetFillColorSpace 颜色空间填充
7 CGConextSetStrokeColorSpace 颜色空间画笔设置
8 CGContextFillRect 补充当前填充颜色的rect
8 CGContextSetAlaha 透明度
9 CGContextTranslateCTM 改变画布位置
10 CGContextSetLineWidth 设置线的宽度
11 CGContextAddRects 画多个线
12 CGContextAddQuadCurveToPoint 画曲线
13 CGContextStrokePath 开始绘制图片
13 CGContextDrawPath 设置绘制模式
14 CGContextClosePath 封闭当前线路
15 CGContextTranslateCTM(context, 0, rect.size.height); CGContextScaleCTM(context, 1.0, -1.0);反转画布
16 CGContextSetInterpolationQuality 背景内置颜色质量等级
16 CGImageCreateWithImageInRect 从原图片中取小图
17 字符串的 写入可用 nsstring本身的画图方法 - (CGSize)drawInRect:(CGRect)rect withFont:(UIFont *)font lineBreakMode:(UILineBreakMode)lineBreakMode alignment:(UITextAlignment)alignment;来写进去即可
18对图片放大缩小的功能就是慢了点
UIGraphicsBeginImageContext(newSize);
UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
19 CGColorGetComponents() 返回颜色的各个直 以及透明度 可用只读const float 来接收 是个数组
20 画图片 CGImageRef image=CGImageRetain(img.CGImage);
CGContextDrawImage(context, CGRectMake(10.0, height -
100.0, 90.0, 90.0), image);
21 实现逐变颜色填充方法 CGContextClip(context);
CGColorSpaceRef rgb = CGColorSpaceCreateDeviceRGB();
CGFloat colors[] =
{
204.0 / 255.0, 224.0 / 255.0, 244.0 / 255.0, 1.00,
29.0 / 255.0, 156.0 / 255.0, 215.0 / 255.0, 1.00,
0.0 / 255.0, 50.0 / 255.0, 126.0 / 255.0, 1.00,
};
CGGradientRef gradient = CGGradientCreateWithColorComponents
(rgb, colors, NULL, sizeof(colors)/(sizeof(colors[0])*4));
CGColorSpaceRelease(rgb);
CGContextDrawLinearGradient(context, gradient,CGPointMake
(0.0,0.0) ,CGPointMake(0.0,self.frame.size.height),
kCGGradientDrawsBeforeStartLocation);
22 注: 画完图后,必须
先用CGContextStrokePath来描线,即形状
后用CGContextFillPath来填充形状内的颜色.
填充一个路径的时候,路径里面的子路径都是独立填充的。
假如是重叠的路径,决定一个点是否被填充,有两种规则
1,nonzero winding number rule:非零绕数规则,假如一个点被从左到右跨过,计数器+1,从右到左跨过,计数器-1,最后,如果结果是0,那么不填充,如果是非零,那么填充。
2,even-odd rule: 奇偶规则,假如一个点被跨过,那么+1,最后是奇数,那么要被填充,偶数则不填充,和方向没有关系。
Function
Description
CGContextEOFillPath
使用奇偶规则填充当前路径
CGContextFillPath
使用非零绕数规则填充当前路径
CGContextFillRect
填充指定的矩形
CGContextFillRects
填充指定的一些矩形
CGContextFillEllipseInRect
填充指定矩形中的椭圆
CGContextDrawPath
两个参数决定填充规则,kCGPathFill表示用非零绕数规则,kCGPathEOFill表示用奇偶规则,kCGPathFillStroke表示填充,kCGPathEOFillStroke表示描线,不是填充
设置当一个颜色覆盖上另外一个颜色,两个颜色怎么混合
默认方式是
result = (alpha * foreground) + (1 - alpha) * background
CGContextSetBlendMode :设置blend mode.
CGContextSaveGState :保存blend mode.
CGContextRestoreGState:在没有保存之前,用这个函数还原blend mode.
CGContextSetBlendMode 混合俩种颜色
分享到:
相关推荐
在iOS开发中,为了实现美观的数据可视化,我们经常需要利用画图类来绘制各种图形,如饼状图。本教程将深入探讨如何使用iOS提供的Core Graphics框架,也称为Quartz 2D,来创建自定义的圆形饼状图。这个过程涉及到多个...
总结起来,“iOS绘画板画图画线”项目涵盖了多个iOS开发中的重要知识点,包括图形绘制、手势识别、图片处理、用户交互以及数据管理。对于初学者来说,这是一个很好的实践平台,可以深入理解iOS应用开发的核心技术,...
总结起来,"简易画板Demo"涵盖的知识点包括:iOS图形上下文的使用、贝塞尔路径绘图、触摸事件处理、用户界面设计、数据持久化以及可能的图像处理算法。这个项目对于学习iOS开发,特别是图形界面编程来说,是一个很好...
本Demo——"iOS Demo 画板",提供了一个简易的画图环境,让用户能够自由地绘制、编辑和保存他们的作品。 1. **UIKit框架**:作为iOS应用程序的基础,UIKit负责处理窗口、视图、控件等UI元素的显示和交互。在这个...
总结来说,"DrawPathTest Demo代码"是一个展示如何在iOS应用中利用`UIBezierPath`和Core Graphics进行图形绘制的实例。它涵盖了路径创建、图形渲染、颜色与样式设置、以及可能的用户交互处理。这个Demo对于学习iOS...
总结,"基于QT的画图版"是一个利用QT的绘图功能和图形视图框架实现的项目,通过源代码学习,可以掌握QT的基本用法、事件处理和图形交互设计。这个项目对于学习QT的图形界面编程和2D绘图是个很好的起点。
FireMonkey是Embarcadero Delphi开发平台的一个重要组成部分,它提供了一种跨平台的UI构建工具,允许开发者创建能够在Windows、Mac OS X、iOS以及Android等不同操作系统上运行的应用程序。 FireMonkey框架以其强大...
总结一下,iOS开发中使用Quartz2D和自定义UIImageView控件的关键在于理解图形上下文的概念,掌握创建和使用Bitmap Graphics Context的方法,以及熟悉Quartz2D提供的绘图API。通过这些技术,开发者可以创造出高度...
总结起来,HYYBoard是一个针对iOS平台的简单画板实现,它利用UIBezierPath和手势识别技术提供电子签名功能。通过集成HYYBoard,开发者可以轻松地在自己的应用中添加签名模块,同时还可以根据需求进行个性化定制,...
总结,"Python画图"与"JavaWeb"的结合意味着在数据驱动的Web应用中,开发者可以使用Python进行数据处理和可视化,然后将这些结果整合到JavaWeb应用中,为用户提供丰富的数据展示和交互体验。这种跨领域的技能组合在...
下面将详细讲解如何利用Cocos Creator的画图方式来实现二维码的创建。 首先,我们需要了解二维码的基本原理。二维码(Quick Response Code)是一种二维条形码,能够存储比传统一维条形码更多的信息,如文字、网址、...
- 由于标题提到“苹果”,我们可以推断这款画画工具主要针对的是苹果的操作系统,如macOS或iOS。这意味着它可能需要在Apple设备上运行,并且可能有优化的界面和功能适应苹果的设计哲学。 2. **画图功能**: - ...
要使用Dev C++画图,我们需要借助图形库,如SDL(Simple DirectMedia Layer)或OpenGL。但在这个例子中,描述并未提及具体使用哪个库,所以我们将假设我们仅使用标准C++库来实现。在C++中,可以使用字符数组来表示...
总结起来,"DrawLineTest" Demo的核心知识点包括: 1. 自定义UIView子类用于绘图。 2. 使用Core Graphics进行2D图形绘制,包括设置线条颜色、宽度和路径。 3. 处理触摸事件,实现实时动态绘图。 4. 使用UIBezierPath...
总结,`DrawImageTest`Demo代码主要展示了如何利用`UIImage`和`drawRect:`方法在iOS应用中自定义视图的绘图逻辑,这在创建动态视图、动画效果或者进行复杂界面设计时非常有用。理解并熟练运用这些知识点,将有助于...
- ARKit是Apple提供的官方SDK,用于在iOS、iPadOS和macOS上创建AR应用。 - 它支持平面检测、物体检测、光线估计等功能,为AR体验提供基础。 2. **手势识别**: - 在这个项目中,关键在于识别用户的裸手指手势。...
1. `[iPhone和iPad开发书籍大全].Learning.ObjectiveC.2.0(Addison.Wesley.2010-07).pdf` - 这是一本关于Objective-C的书籍,Objective-C是iOS开发的主要语言,可能包含有关图形编程的信息,尽管它不是C#,但可以为...
以下是根据文章内容总结的一些关键知识点: 1. **移动式屏幕**:利用特定的应用程序,如iOS和Android平台上的"Air Display",可以把旧平板电脑变成移动显示器,用于监控、查看通知或作为多媒体工具。 2. **无线...
- **示例二:** 创建一款画图应用,利用iPad的大屏幕和多点触控功能,提供更丰富的绘画工具和更直观的用户界面。 - **示例三:** 设计一款游戏,利用iPad的额外空间来增加游戏内的元素数量,提升游戏的沉浸感。 ###...
【涂鸦屋】是一款基于iOS平台的涂鸦应用,它允许用户通过Swift编程语言实现自由绘画、创作,体验丰富的画图功能。应用的核心是利用Swift的强大学术性和易用性,结合Sketch的设计理念,为iOS用户提供一个简洁而富有...