一个Graphics Context表示一个绘制目标。它包含绘制系统用于完成绘制指令的绘制参数和设备相关信息。Graphics Context定义了基本的绘制属性,如颜色、裁减区域、线条宽度和样式信息、字体信息、混合模式等。
我们可以通过几种方式来获取Graphics Context:Quartz提供的创建函数、Mac OS X框架或IOS的UIKit框架提供的函数。Quartz提供了多种Graphics Context的创建函数,包括bitmap和PDF,我们可以使用这些Graphics Context创建自定义的内容。
本章介绍了如何为不同的绘制目标创建Graphics Context。在代码中,我们用CGContextRef来表示一个Graphics Context。当获得一个Graphics Context后,可以使用Quartz 2D函数在上下文(context)中进行绘制、完成操作(如平移)、修改图形状态参数(如线宽和填充颜色)等。
在iOS中的视图Graphics Context进行绘制
在iOS应用程序中,如果要在屏幕上进行绘制,需要创建一个UIView对象,并实现它的drawRect:方法。视图的drawRect:方法在视图显示在屏幕上及它的内容需要更新时被调用。在调用自定义的drawRect:后,视图对象自动配置绘图环境以便代码能立即执行绘图操作。作为配置的一部分,视图对象将为当前的绘图环境创建一个Graphics Context。我们可以通过调用UIGraphicsGetCurrentContext函数来获取这个Graphics Context。
UIKit默认的坐标系统与Quartz不同。在UIKit中,原点位于左上角,y轴正方向为向下。UIView通过将修改Quartz的Graphics Context的CTM[原点平移到左下角,同时将y轴反转(y值乘以-1)]以使其与UIView匹配。
在Mac OS X中创建一个窗口Graphics Context
在Mac OS X中绘制时,我们需要创建一个窗口Graphics Context。Quartz 2D API 没有提供函数来获取窗口Graphics Context。取而代之的是用Cocoa框架来获取一个窗口上下文。
我们可以在Cocoa应用程序的drawRect:中获取一个Quartz Graphics Context,如下代码所示:
currentContext方法在当前线程中返回NSGraphicsContext实例。graphicsPort方法返回一个低级别、平台相关的Graphics Context(Quartz Graphics Context)。
在获取到Graphics Context后,我们可以在Cocoa应用程序中调用任何Quartz 2D的绘制函数。我们同样可以将Quartz 2D与Cocoa绘制操作混合使用。如图2-1是一个在Cocoa视图中用Quartz 2D绘制的实例。绘图由两个长方形组成(一个不透明的红色长方形和半透明的蓝色长方形)。
为了实现图2-1实例,需要先创建一个Cocoa应用程序。在Interface Builder中,拖动一个Custom View到窗口中,并子类化。然后实现子类视图的,如代码清单2-1所示。视图的drawRect:包含了所有的Quartz绘制代码。
代码说明:
1.为视图获取一个Graphics Context
2.插入绘图代码的地方。以下四行是使用Quartz 2D函数的例子
3.设置完全不透明的红色填充色。
4.填充一个长方形,其原点为(0, 0), 大小为(200, 100)
5.设置半透明的蓝色填充色。
6.填充一个长方形,其原点为(0, 0), 大小为(100, 200)
创建一个PDF Graphics Context
当创建一个PDF Graphics Context并绘制时,Quartz将绘制操作记录为一系列的PDF绘制命令并写入文件中。我们需要提供一个PDF输出的位置及一个默认的media box(用于指定页面边界的长方形)。图2-2显示了在PDF Graphics Context中绘制及在preview打开PDF的结果。
Quartz 2D API提供了两个函数来创建PDF Graphics Context:
CGPDFContextCreateWithURL:当你需要用Core Foundation URL指定pdf输出的位置时使用该函数。代码清单2-2显示了该函数的使用方法(代码2-2及后面代码的详细解释略):
CGPDFContextCreate:当需要将pdf输出发送给数据用户时使用该方法。代码清单2-3显示了该函数的使用方法:
代码清单2-4显示是如何调用MyPDFContextCreate程序及绘制操作。
我们可以将任何内容(图片,文本,绘制路径)绘制到pdf中,并能添加链接及加密。
创建位图Graphics Context
一个位图Graphics Context接受一个指向内存缓存(包含位图存储空间)的指针,当我们绘制一个位图Graphics Context时,该缓存被更新。在释放Graphics Context后,我们将得到一个我们指定像素格式的全新的位图。
注:位图Graphics Context有时用于后台绘制。CGLayer对象优化了后台绘制,因为Quartz在显卡上缓存了层。
iOS提示:iOS应用程序使用了UIGraphicsBeginImageContextWithOptions取代Quartz低层函数。如果使用Quartz创建一下后台bitmap,bitmap Graphics Context使用的坐标系统是Quartz默认的坐标系统。而使用UIGraphicsBeginImageContextWithOptions创建图形上下文,UIKit将会对坐标系统使用与UIView对象的图形上下文一样的转换。这允许应用程序使用相同的绘制代码而不需要担心坐标系统问题。虽然我们的应用程序可以手动调整CTM达到相同的效果,但这种做没有任何好处。
我们使用CGBitmapContextCreate来创建位图Graphics Context,该函数有如下参数:
data:一个指向内存目标的指针,该内存用于存储需要渲染的图形数据。内存块的大小至少需要(bytePerRow * height)字节。
width:指定位图的宽度,单位是像素(pixel)。
height:指定位图的高度, 单位是像素(pixel)。
bitsPerComponent:指定内存中一个像素的每个组件使用的位数。例如,一个32位的像素格式和一个rgb颜色空间,我们可以指定每个组件为8位。
bytesPerRow:指定位图每行的字节数。
colorspace:颜色空间用于位图上下文。在创建位图Graphics Context时,我们可以使用灰度(gray), RGB, CMYK, NULL颜色空间。
bitmapInfo:位图的信息,这些信息用于指定位图是否需要包含alpha组件,像素中alpha组件的相对位置(如果有的话),alpha组件是否是预乘的,及颜色组件是整型值还是浮点值。
代码清单2-5显示了如何创建位图Graphics Context。当向位图Graphics Context绘图时,Quartz将绘图记录到内存中指定的块中。
代码清单2-6显示了调用MyCreateBitmapContext 创建一个位图Graphics Context,使用位图Graphics Context来创建CGImage对象,然后将图片绘制到窗口Graphics Context中。绘制结果如图2-3所示:
支持的像素格式
表2-1总结了位图Graphics Context支持的像素格式,相关的颜色空间及像素格式支持的Mac OS X最早版本。像素格式用bpp(每像素的位数)和bpc(每个组件的位数)来表示。表格同时也包含与像素格式相关的位图信息常量。
表2-1:位图Graphics Context支持的像素格式
Null 8 bpp, 8 bpc, kCGImageAlphaOnly
Mac OS X, iOS
Gray
8 bpp, 8 bpc,kCGImageAlphaNone
Mac OS X, iOS
Gray
8 bpp, 8 bpc,kCGImageAlphaOnly
Mac OS X, iOS
Gray
16 bpp, 16 bpc, kCGImageAlphaNone
Mac OS X
Gray
32 bpp, 32 bpc, kCGImageAlphaNone|kCGBitmapFloatComponents
Mac OS X
RGB
16 bpp, 5 bpc, kCGImageAlphaNoneSkipFirst
Mac OS X, iOS
RGB
32 bpp, 8 bpc, kCGImageAlphaNoneSkipFirst
Mac OS X, iOS
RGB
32 bpp, 8 bpc, kCGImageAlphaNoneSkipLast
Mac OS X, iOS
RGB
32 bpp, 8 bpc, kCGImageAlphaPremultipliedFirst
Mac OS X, iOS
RGB
32 bpp, 8 bpc, kCGImageAlphaPremultipliedLast
Mac OS X, iOS
RGB
64 bpp, 16 bpc, kCGImageAlphaPremultipliedLast
Mac OS X
RGB
64 bpp, 16 bpc, kCGImageAlphaNoneSkipLast
Mac OS X
RGB
128 bpp, 32 bpc, kCGImageAlphaNoneSkipLast |kCGBitmapFloatComponents
Mac OS X
RGB
128 bpp, 32 bpc, kCGImageAlphaPremultipliedLast |kCGBitmapFloatComponents
Mac OS X
CMYK
32 bpp, 8 bpc, kCGImageAlphaNone
Mac OS X
CMYK
64 bpp, 16 bpc, kCGImageAlphaNone
Mac OS X
CMYK
128 bpp, 32 bpc, kCGImageAlphaNone |kCGBitmapFloatComponents
Mac OS X
反锯齿
位图Graphics Context支持反锯齿,这一操作是人为的较正在位图中绘制文本或形状时产生的锯齿边缘。当位图的分辩率明显低于人眼的分辩率时就会产生锯齿。为了使位图中的对象显得平滑,Quartz使用不同的颜色来填充形状周边的像素。通过这种方式来混合颜色,使形状看起来更平滑。如图2-4显示的效果。我们可以通过调用CGContextSetShouldAntialias来关闭位图Graphics Context的反锯齿效果。反锯齿设置是图形状态的一部分。
可以调用函数CGContextSetAllowsAntialiasing来控制一个特定Graphics Context是否支持反锯齿;false表示不支持。该设置不是图形状态的一部分。当上下文及图形状态设置为true时,Quartz执行反锯齿。
获取打印的Graphics Context
Mac OS X中的Cocoa应用程序通过自定义的NSView子类来实现打印。一个视图通过调用print:方法来进行打印。然后视图以打印机为目标创建一个Graphics Context,并调用drawRect:方法。应用程序使用与在屏幕进行绘制相同的绘制代码。我们同样可以自定义drawRect: 方法将图形绘制到打印机。
我们可以通过几种方式来获取Graphics Context:Quartz提供的创建函数、Mac OS X框架或IOS的UIKit框架提供的函数。Quartz提供了多种Graphics Context的创建函数,包括bitmap和PDF,我们可以使用这些Graphics Context创建自定义的内容。
本章介绍了如何为不同的绘制目标创建Graphics Context。在代码中,我们用CGContextRef来表示一个Graphics Context。当获得一个Graphics Context后,可以使用Quartz 2D函数在上下文(context)中进行绘制、完成操作(如平移)、修改图形状态参数(如线宽和填充颜色)等。
在iOS中的视图Graphics Context进行绘制
在iOS应用程序中,如果要在屏幕上进行绘制,需要创建一个UIView对象,并实现它的drawRect:方法。视图的drawRect:方法在视图显示在屏幕上及它的内容需要更新时被调用。在调用自定义的drawRect:后,视图对象自动配置绘图环境以便代码能立即执行绘图操作。作为配置的一部分,视图对象将为当前的绘图环境创建一个Graphics Context。我们可以通过调用UIGraphicsGetCurrentContext函数来获取这个Graphics Context。
UIKit默认的坐标系统与Quartz不同。在UIKit中,原点位于左上角,y轴正方向为向下。UIView通过将修改Quartz的Graphics Context的CTM[原点平移到左下角,同时将y轴反转(y值乘以-1)]以使其与UIView匹配。
在Mac OS X中创建一个窗口Graphics Context
在Mac OS X中绘制时,我们需要创建一个窗口Graphics Context。Quartz 2D API 没有提供函数来获取窗口Graphics Context。取而代之的是用Cocoa框架来获取一个窗口上下文。
我们可以在Cocoa应用程序的drawRect:中获取一个Quartz Graphics Context,如下代码所示:
CGContextRef myContext = [[NSGraphicsContext currentContext] graphicsPort];
currentContext方法在当前线程中返回NSGraphicsContext实例。graphicsPort方法返回一个低级别、平台相关的Graphics Context(Quartz Graphics Context)。
在获取到Graphics Context后,我们可以在Cocoa应用程序中调用任何Quartz 2D的绘制函数。我们同样可以将Quartz 2D与Cocoa绘制操作混合使用。如图2-1是一个在Cocoa视图中用Quartz 2D绘制的实例。绘图由两个长方形组成(一个不透明的红色长方形和半透明的蓝色长方形)。
为了实现图2-1实例,需要先创建一个Cocoa应用程序。在Interface Builder中,拖动一个Custom View到窗口中,并子类化。然后实现子类视图的,如代码清单2-1所示。视图的drawRect:包含了所有的Quartz绘制代码。
引用
注:NSView的drawRect:方法在每次视图需要绘制时自动调用。
Listing 2-1 Drawing to a window graphics context @implementation MyQuartzView - (id)initWithFrame:(NSRect)frameRect { self = [super initWithFrame:frameRect]; return self; } - (void)drawRect:(NSRect)rec { CGContextRef myContext = [[NSGraphicsContext currentContext] graphicsPort]; //1 // ********** Your drawing code here ********** //2 CGContextSetRGBFillColor (myContext, 1, 0, 0, 1); //3 CGContextFillRect (myContext, CGRectMake (0, 0, 200, 100 )); //4 CGContextSetRGBFillColor (myContext, 0, 0, 1, .5); //5 CGContextFillRect (myContext, CGRectMake (0, 0, 100, 200)); //6 } @end
代码说明:
1.为视图获取一个Graphics Context
2.插入绘图代码的地方。以下四行是使用Quartz 2D函数的例子
3.设置完全不透明的红色填充色。
4.填充一个长方形,其原点为(0, 0), 大小为(200, 100)
5.设置半透明的蓝色填充色。
6.填充一个长方形,其原点为(0, 0), 大小为(100, 200)
创建一个PDF Graphics Context
当创建一个PDF Graphics Context并绘制时,Quartz将绘制操作记录为一系列的PDF绘制命令并写入文件中。我们需要提供一个PDF输出的位置及一个默认的media box(用于指定页面边界的长方形)。图2-2显示了在PDF Graphics Context中绘制及在preview打开PDF的结果。
Quartz 2D API提供了两个函数来创建PDF Graphics Context:
CGPDFContextCreateWithURL:当你需要用Core Foundation URL指定pdf输出的位置时使用该函数。代码清单2-2显示了该函数的使用方法(代码2-2及后面代码的详细解释略):
Listing 2-2 Calling CGPDFContextCreateWithURL to create a PDF graphics context CGContextRef MyPDFContextCreate (const CGRect *inMediaBox, CFStringRef path) { CGContextRef myOutContext = NULL; CFURLRef url; url = CFURLCreateWithFileSystemPath (NULL, path, kCFURLPOSIXPathStyle, false); if (url != NULL) { myOutContext = CGPDFContextCreateWithURL (url, inMediaBox, NULL); CFRelease(url); } return myOutContext; }
CGPDFContextCreate:当需要将pdf输出发送给数据用户时使用该方法。代码清单2-3显示了该函数的使用方法:
Listing 2-3 Calling CGPDFContextCreate to create a PDF graphics context CGContextRef MyPDFContextCreate (const CGRect *inMediaBox, CFStringRef path) { CGContextRef myOutContext = NULL; CFURLRef url; CGDataConsumerRef dataConsumer; url = CFURLCreateWithFileSystemPath (NULL, path, kCFURLPOSIXPathStyle, false); if (url != NULL) { dataConsumer = CGDataConsumerCreateWithURL (url); if (dataConsumer != NULL) { myOutContext = CGPDFContextCreate (dataConsumer, inMediaBox, NULL); CGDataConsumerRelease (dataConsumer); } CFRelease(url); } return myOutContext; }
代码清单2-4显示是如何调用MyPDFContextCreate程序及绘制操作。
Listing 2-4 Drawing to a PDF graphics context CGRect mediaBox; mediaBox = CGRectMake (0, 0, myPageWidth, myPageHeight); myPDFContext = MyPDFContextCreate (&mediaBox, CFSTR("test.pdf")); CFStringRef myKeys[1]; CFTypeRef myValues[1]; myKeys[0] = kCGPDFContextMediaBox; myValues[0] = (CFTypeRef) CFDataCreate(NULL,(const UInt8 *)&mediaBox, sizeof (CGRect)); CFDictionaryRef pageDictionary = CFDictionaryCreate(NULL, (const void **) myKeys, (const void **) myValues, 1, &kCFTypeDictionaryKeyCallBacks, & kCFTypeDictionaryValueCallBacks); CGPDFContextBeginPage(myPDFContext, &pageDictionary); // ********** Your drawing code here ********** CGContextSetRGBFillColor (myPDFContext, 1, 0, 0, 1); CGContextFillRect (myPDFContext, CGRectMake (0, 0, 200, 100 )); CGContextSetRGBFillColor (myPDFContext, 0, 0, 1, .5); CGContextFillRect (myPDFContext, CGRectMake (0, 0, 100, 200 )); CGPDFContextEndPage(myPDFContext); CFRelease(pageDictionary); CFRelease(myValues[0]); CGContextRelease(myPDFContext);
我们可以将任何内容(图片,文本,绘制路径)绘制到pdf中,并能添加链接及加密。
创建位图Graphics Context
一个位图Graphics Context接受一个指向内存缓存(包含位图存储空间)的指针,当我们绘制一个位图Graphics Context时,该缓存被更新。在释放Graphics Context后,我们将得到一个我们指定像素格式的全新的位图。
引用
注:位图Graphics Context有时用于后台绘制。CGLayer对象优化了后台绘制,因为Quartz在显卡上缓存了层。
引用
iOS提示:iOS应用程序使用了UIGraphicsBeginImageContextWithOptions取代Quartz低层函数。如果使用Quartz创建一下后台bitmap,bitmap Graphics Context使用的坐标系统是Quartz默认的坐标系统。而使用UIGraphicsBeginImageContextWithOptions创建图形上下文,UIKit将会对坐标系统使用与UIView对象的图形上下文一样的转换。这允许应用程序使用相同的绘制代码而不需要担心坐标系统问题。虽然我们的应用程序可以手动调整CTM达到相同的效果,但这种做没有任何好处。
我们使用CGBitmapContextCreate来创建位图Graphics Context,该函数有如下参数:
data:一个指向内存目标的指针,该内存用于存储需要渲染的图形数据。内存块的大小至少需要(bytePerRow * height)字节。
width:指定位图的宽度,单位是像素(pixel)。
height:指定位图的高度, 单位是像素(pixel)。
bitsPerComponent:指定内存中一个像素的每个组件使用的位数。例如,一个32位的像素格式和一个rgb颜色空间,我们可以指定每个组件为8位。
bytesPerRow:指定位图每行的字节数。
colorspace:颜色空间用于位图上下文。在创建位图Graphics Context时,我们可以使用灰度(gray), RGB, CMYK, NULL颜色空间。
bitmapInfo:位图的信息,这些信息用于指定位图是否需要包含alpha组件,像素中alpha组件的相对位置(如果有的话),alpha组件是否是预乘的,及颜色组件是整型值还是浮点值。
代码清单2-5显示了如何创建位图Graphics Context。当向位图Graphics Context绘图时,Quartz将绘图记录到内存中指定的块中。
Listing 2-5 Creating a bitmap graphics context CGContextRef MyCreateBitmapContext (int pixelsWide, int pixelsHigh) { CGContextRef context = NULL; CGColorSpaceRef colorSpace; void * bitmapData; int bitmapByteCount; int bitmapBytesPerRow; bitmapBytesPerRow = (pixelsWide * 4); bitmapByteCount = (bitmapBytesPerRow * pixelsHigh); colorSpace = CGColorSpaceCreateWithName(kCGColorSpaceGenericRGB); bitmapData = calloc( bitmapByteCount ); if (bitmapData == NULL) { fprintf (stderr, "Memory not allocated!"); return NULL; } context = CGBitmapContextCreate (bitmapData, pixelsWide, pixelsHigh, 8, bitmapBytesPerRow, colorSpace, kCGImageAlphaPremultipliedLast); if (context== NULL) { free (bitmapData); fprintf (stderr, "Context not created!"); return NULL; } CGColorSpaceRelease( colorSpace ); return context; }
代码清单2-6显示了调用MyCreateBitmapContext 创建一个位图Graphics Context,使用位图Graphics Context来创建CGImage对象,然后将图片绘制到窗口Graphics Context中。绘制结果如图2-3所示:
Listing 2-6 Drawing to a bitmap graphics context CGRect myBoundingBox; myBoundingBox = CGRectMake (0, 0, myWidth, myHeight); myBitmapContext = MyCreateBitmapContext (400, 300); // ********** Your drawing code here ********** CGContextSetRGBFillColor (myBitmapContext, 1, 0, 0, 1); CGContextFillRect (myBitmapContext, CGRectMake (0, 0, 200, 100 )); CGContextSetRGBFillColor (myBitmapContext, 0, 0, 1, .5); CGContextFillRect (myBitmapContext, CGRectMake (0, 0, 100, 200 )); myImage = CGBitmapContextCreateImage (myBitmapContext); CGContextDrawImage(myContext, myBoundingBox, myImage); char *bitmapData = CGBitmapContextGetData(myBitmapContext); CGContextRelease (myBitmapContext); if (bitmapData) free(bitmapData); CGImageRelease(myImage);
支持的像素格式
表2-1总结了位图Graphics Context支持的像素格式,相关的颜色空间及像素格式支持的Mac OS X最早版本。像素格式用bpp(每像素的位数)和bpc(每个组件的位数)来表示。表格同时也包含与像素格式相关的位图信息常量。
表2-1:位图Graphics Context支持的像素格式
Null 8 bpp, 8 bpc, kCGImageAlphaOnly
Mac OS X, iOS
Gray
8 bpp, 8 bpc,kCGImageAlphaNone
Mac OS X, iOS
Gray
8 bpp, 8 bpc,kCGImageAlphaOnly
Mac OS X, iOS
Gray
16 bpp, 16 bpc, kCGImageAlphaNone
Mac OS X
Gray
32 bpp, 32 bpc, kCGImageAlphaNone|kCGBitmapFloatComponents
Mac OS X
RGB
16 bpp, 5 bpc, kCGImageAlphaNoneSkipFirst
Mac OS X, iOS
RGB
32 bpp, 8 bpc, kCGImageAlphaNoneSkipFirst
Mac OS X, iOS
RGB
32 bpp, 8 bpc, kCGImageAlphaNoneSkipLast
Mac OS X, iOS
RGB
32 bpp, 8 bpc, kCGImageAlphaPremultipliedFirst
Mac OS X, iOS
RGB
32 bpp, 8 bpc, kCGImageAlphaPremultipliedLast
Mac OS X, iOS
RGB
64 bpp, 16 bpc, kCGImageAlphaPremultipliedLast
Mac OS X
RGB
64 bpp, 16 bpc, kCGImageAlphaNoneSkipLast
Mac OS X
RGB
128 bpp, 32 bpc, kCGImageAlphaNoneSkipLast |kCGBitmapFloatComponents
Mac OS X
RGB
128 bpp, 32 bpc, kCGImageAlphaPremultipliedLast |kCGBitmapFloatComponents
Mac OS X
CMYK
32 bpp, 8 bpc, kCGImageAlphaNone
Mac OS X
CMYK
64 bpp, 16 bpc, kCGImageAlphaNone
Mac OS X
CMYK
128 bpp, 32 bpc, kCGImageAlphaNone |kCGBitmapFloatComponents
Mac OS X
反锯齿
位图Graphics Context支持反锯齿,这一操作是人为的较正在位图中绘制文本或形状时产生的锯齿边缘。当位图的分辩率明显低于人眼的分辩率时就会产生锯齿。为了使位图中的对象显得平滑,Quartz使用不同的颜色来填充形状周边的像素。通过这种方式来混合颜色,使形状看起来更平滑。如图2-4显示的效果。我们可以通过调用CGContextSetShouldAntialias来关闭位图Graphics Context的反锯齿效果。反锯齿设置是图形状态的一部分。
可以调用函数CGContextSetAllowsAntialiasing来控制一个特定Graphics Context是否支持反锯齿;false表示不支持。该设置不是图形状态的一部分。当上下文及图形状态设置为true时,Quartz执行反锯齿。
获取打印的Graphics Context
Mac OS X中的Cocoa应用程序通过自定义的NSView子类来实现打印。一个视图通过调用print:方法来进行打印。然后视图以打印机为目标创建一个Graphics Context,并调用drawRect:方法。应用程序使用与在屏幕进行绘制相同的绘制代码。我们同样可以自定义drawRect: 方法将图形绘制到打印机。
发表评论
-
如何使用AV Foundation从摄像头将视频帧捕获为图像
2012-11-15 17:21 7403如果译错,感谢指出。 英文原文地址:https://d ... -
iOS单元测试
2012-11-05 11:37 881转自:http://www.cnblogs.com/ke ... -
Core Data数据持久化的使用
2012-10-30 21:31 1016CoreData 是ios中用来对数据做持久化的一个框架 ... -
ASIHTTPRequest缓存策略的设置
2012-10-30 17:23 3836ASIHTTPRequest 是一款强大的网络请求框架,该框架 ... -
【无限互联】xcode自定义类的模板
2012-10-23 19:37 1119翻译:http://www.bobmccune.com/ ... -
【无限互联】适配iOS6和iPhone5屏幕
2012-10-23 18:05 24381. iOS6的mo模拟器比较大,通过comman ... -
【无限互联】mac下配置svn服务器
2012-10-22 13:30 738在mac下配置svn服务器其实很简单,只需要简单的几句命令就可 ... -
【无限互联】iOS开发之多线程开发
2012-10-10 17:41 1212本节要点: 1.多线程的概念 2.掌握iOS中多线程 ... -
【无限互联】iOS开发block用法之UIAlertView控件的修改
2012-10-10 17:06 2633原始的UIAlertView的需要通过委托方法来实现按钮 ... -
Objective-C新特性
2012-09-05 14:38 674基于Xcode4.4(不完全独有)。1. 成员方法无需前置声明 ... -
iphone-NSDate日期处理
2012-08-31 16:25 1031NSDate存储的是世界标准时(UTC),输出时需要 ... -
iphone开发资源汇总
2012-08-31 16:16 1570如何用Facebook graphic api上传视 ... -
iOS-如何让xcode自动检查内存泄露
2012-08-31 16:05 1064在project-setting中找到 “Run Static ... -
UIScrollView的属性总结
2012-02-08 15:58 4397在滚动过程当中,其实是在修改原点坐标 当手指触摸后, scr ... -
iPhone开发之 ARC是什么
2012-01-17 16:58 1342相关链接:http://blog.csdn ... -
画图时 自己做的一小笔记
2012-01-07 21:02 9350 CGContextRef context = UIGra ... -
让Xcode 4.2生成的app支持旧版iOS设备(armv6)
2012-01-07 00:46 1296这几天遇到一个非常奇怪的问题,基于Xcode 4.2开发的ap ... -
5个开源库的JSON解析速度测试
2011-12-03 23:15 1419iOS5新增了JSON解析的API ... -
获取iOS设备当前ip地址
2011-11-17 23:16 1349第一种方法是用系统api的方式获取,如下 #include & ... -
Quartz 2D编程指南(1) - 概览
2011-11-11 23:57 1664Quartz 2D是一个二维图形绘制引擎,支持iOS环境和Ma ...
相关推荐
Quartz 2D编程的前几节,也是在网上收集的
ios Quartz 2D编程指南 2d图形处理
Quartz 2D编程指南(1)
苹果的处理图片方式的开发文档,以及图片格式转换等必要手段,文档出自官方文档的翻译。
Quartz 2D编程指南(英文完整版+中文部分翻译版),苹果官方编程指南,详细介绍了如何在iOS和MAC OS上绘图开发部分的知识。
quartz-2.4.0-SNAPSHOT-distribution.tar.gz包,解压后可查看里面的simple
Quartz_2D编程指南
用QuArtz2D的绘制各种基本图形,简单的demo,各种方法
Quartz 2D is an advanced, two-dimensional drawing engine available for iOS ...The Quartz 2D API is part of the Core Graphics framework, so you may see Quartz referred to as Core Graphics or, simply, CG.
quartz-all-1.6.1-RC3.jar
该压缩包内包含两个quartz的jar包, 分别是quartz-1.6.0.jar和quartz-all-1.6.0.jar
Quartz2D图形刷新和定时器的操作练习
赠送jar包:quartz-2.3.0.jar; 赠送原API文档:quartz-2.3.0-javadoc.jar; 赠送源代码:quartz-2.3.0-sources.jar; 赠送Maven依赖信息文件:quartz-2.3.0.pom; 包含翻译后的API文档:quartz-2.3.0-javadoc-API...
... Scott Thompson 出版社:Addison Wesley Professional 出版时间:March 10, 2006 文件格式:CHM <br>Quartz:是Mac OS X的Aqua图形界面的2D图形加速引擎。
quartz-jobs-2.2.1-sources.jar 好东西,不解释
Programming with Quartz 2D and PDF Graphics in Mac OS X Written by members of the development team at Apple, Programming with Quartz is the first book to describe the sophisticated graphics system of ...
Quartz2D绘画-柱状图
这是我在学习ios的过程中写的一个demo,用于说明Quartz 2D中的图形上下文栈的概念。
1. Quartz2D基本概念 2. Quartz2D绘图的基本步骤