Graphics Context

Graphics Context定义了基本的绘制属性,如颜色、裁减区域、线条宽度和样式信息、字体信息、混合模式

Quartz2D是C语言的框架,并且部分需要自己管理内存:

•使用含有“Create”或“Copy”的函数创建的对象,使用完后必须释放,否则将导致内存泄露

•使用不含有“Create”或“Copy”的函数获取的对象,则不需要释放

•如果retain了一个对象,不再使用时,需要将其release掉。可以使用Quartz 2D的函数来指定retain和release一个对象。例如,如果创建了一个CGColorSpace对象,则使用函数CGColorSpaceRetain和CGColorSpaceRelease来retain和release对象。也可以使用Core Foundation的CFRetain和CFRelease。注意不能传递NULL值给这些函数

----------------------------------

CIFilter :输出一个CIImage,使用键值对对输入的图像设置参数

CIContext

CIImage

CGImageRef

overview  and tasks

CIContext *context = [CIContext contextWithOptions:nil];

CIImage *inputImage = [[CIImage alloc] initWithImage:[UIImage imageNamed:@"365.jpg"]];

// create gaussian blur filter

CIFilter *filter = [CIFilter filterWithName:@"CIGaussianBlur"];

[filter setValue:inputImage forKey:kCIInputImageKey];

[filter setValue:[NSNumber numberWithFloat:0.0] forKey:@"inputRadius"];

// blur image

CIImage *result = [filter valueForKey:kCIOutputImageKey];

CGImageRef cgImage = [context createCGImage:result fromRect:blurFrame];

UIImage *image = [UIImage imageWithCGImage:cgImage];

CGImageRelease(cgImage);

bgView.image = image;


----------------------------------

我们可以通过animationWithKeyPath键值对的方式来改变动画

animationWithKeyPath的值:

transform.scale = 比例轉換

transform.scale.x = 闊的比例轉換

transform.scale.y = 高的比例轉換

transform.rotation.z = 平面圖的旋轉

opacity = 透明度

margin

zPosition

backgroundColor

cornerRadius

borderWidth

bounds

contents

contentsRect

cornerRadius

frame

hidden

mask

masksToBounds

opacity

position

shadowColor

shadowOffset

shadowOpacity

shadowRadius


----------------------------------

转换

变换操作函数概览

如何修改CTM

如何创建一个仿射变换

如何选择两个相同的变换

如何获取user-to-device-space变换

旋转、平移、缩放CTM。我们还可以联结一个仿射变换矩阵?

创建仿射变换

Quartz also allows you to create affine transforms that don’t operate on user space until you decide to apply the transform to the CTM. You use another set of functions to create affine transforms, which can then be concatenated with the CTM.

使用的每个变换操作都更新了CTM

CTM总是用于表示用户空间和设备空间的当前映射关系

在变换CTM之前,我们需要保存图形状态

仿射矩阵来联结CTM?


----------------------------------


quartz guide ————

graphics contexts

path—shapes or subpaths,创建跟绘画是分离的任务。创建各种矢量图形

Color and Color Spaces ----如何翻译颜色

Transforms----CGAffineTransform

patterns--画重复的图形

shadows

transparency layers

bitmap image and image masks

core graphics layer drawing

the identity matrix--单位矩阵




平移矩阵



缩放矩阵


旋转矩阵---逆时针方向



矩阵乘法是不可交换的

Thus we need the extra column containing the constant values.

对另一个矩阵乘以一个矩阵,矩阵的列数必须匹配的行数

这意味着2 x 3矩阵不能乘以2 x 3矩阵。因此我们需要额外的列包含常量值。



----------------------------------


graphics state-----The popped state becomes the current graphics state,在current graphics state

arameters Discussed in this chapter

Current transformation matrix (CTM) Transforms

Clipping area Paths

Line: width, join, cap, dash, miter limit Paths

Accuracy of curve estimation (flatness) Paths

Anti-aliasing setting Graphics Contexts

Color: fill and stroke settings Color and Color Spaces

Alpha value (transparency) Color and Color Spaces

Rendering intent Color and Color Spaces

Color space: fill and stroke settings Color and Color Spaces

Text: font, font size, character spacing, text drawing mode Text

Blend mode Paths and Bitmap Images and Image Masks


----------------------------------

ellipses 椭圆

CGContextAddEllipseInRect-----rect 内画椭圆

curve 曲线

CGContextAddQuadCurveToPoint-----起点,控制点,终点,二次曲线

CGContextAddCurveToPoint-------贝塞尔曲线,三次曲线,两个控制点

arcs 圆弧---两个点的相切线确定一个弧--If the current path already contains a subpath, Quartz appends a straight line segment from the current point to the starting point of the arc. If the current path is empty, Quartz creates a new subpath at the starting point for the arc and does not add the initial straight line segment.

The function CGContextAddArc creates a curved segment from a circle. You specify the center of the circle, the radius, and the radial angle (in radians). You can create a full circle by specifying a radial angle of 2 pi.

(圆心,半径,弧度起点,弧度终点,顺逆时针)

the function CGContextAddArcToPoint is ideal to use when you want to round the corners of a rectangle. Quartz uses the endpoints you supply to create two tangent lines. You also supply the radius of the circle from which Quartz slices the arc. The center point of the arc is the intersection of two radii, each of which is perpendicular to one of the two tangent lines. Each endpoint of the arc is a tangent point on one of the tangent lines

( 切线一从起点至第一个end point , 切线二:从第一个end point 至 第二个 end point , 根据半径画圆 )


----------------------------------

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,470评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,393评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,577评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,176评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,189评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,155评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,041评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,903评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,319评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,539评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,703评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,417评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,013评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,664评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,818评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,711评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,601评论 2 353

推荐阅读更多精彩内容

  • 总是在不经意间想起一些人,一些事。 或是一些地方,或是一个梦境。 而梦中一些人的长相越来越模糊。 梦中,你和我相遇...
    余美鱼阅读 175评论 2 2
  • 欢迎光临我的小窝 关于更新:1、每周一、三、五长篇连载更新。(天下第一楼系列:若解多情更新中。)2、每周二、四更新...
    柳青陵阅读 892评论 12 14
  • 我搭乘着西行的列车方向逃离着自己燥热的灵魂 在铁青的山中在干枯的河道旁在麋鹿昂贵的茸角 升腾着浮动着巨大无物的时间...
    归萋阅读 262评论 0 2