iPhone图形开发绘图小结
2013-03-03 21:19
302 查看
http://blog.csdn.net/wishfly/article/details/7385369
1、绘图总结:
绘图前设置:
绘图后设置:
注: 画完图后,必须 先用CGContextStrokePath来描线,即形状,后用CGContextFillPath来填充形状内的颜色.
2.常见图形绘制:
3.常见控制方法:
4.创建内存图像context:
5.图形的变换:
6.常用函数:
7.从原图片中取小图.
8.屏幕快照:
合并两张bit图到一张image的方法
关键方法:
1、绘图总结:
绘图前设置:
CGContextSetRGBFillColor/CGContextSetFillColorWithColor //填充色 CGContextSetRGBStrokeColor/CGContextSetStrokeColorWithColor //笔颜色 CGContextSetLineWidth //线宽度
绘图后设置:
注: 画完图后,必须 先用CGContextStrokePath来描线,即形状,后用CGContextFillPath来填充形状内的颜色.
2.常见图形绘制:
CGContextFillRect/CGContextFillRects CGContextFillEllipseInRect CGContextAddRect/CGContextAddRects CGContextAddEllipseInRect CGContextAddLines CGContextMoveToPoint CGContextAddLineToPoint
3.常见控制方法:
CGContextSaveGState CGContextRestoreGState
4.创建内存图像context:
CGBitmapContextCreate <-----CGContextRlease释放 CGColorSpaceCreateWithName (KCGColorSpaceGenericRGB) CGColorSpaceRlease CGBitmapContextCreateImage() <-----CGImageRlease 释放. eg: CGContextRefMyCreateBitmapContext(intpixelsWide,intpixelsHigh) { CGContextRef context=NULL; CGColorSpaceRefcolorSpace; void* bitmapData; int bitmapByteCount; int bitmapBytesPerRow; bitmapBytesPerRow =(pixelsWide*4); bitmapByteCount =(bitmapBytesPerRow*pixelsHigh); colorSpace=CGColorSpaceCreateDeviceRGB(); bitmapData=malloc(bitmapByteCount); if(bitmapData==NULL) { fprintf(stderr,"Memorynotallocated!"); returnNULL; } context=CGBitmapContextCreate(bitmapData, pixelsWide, pixelsHigh, 8, bitmapBytesPerRow, colorSpace, kCGImageAlphaPremultipliedLast); if(context==NULL) { free(bitmapData); fprintf(stderr,"Contextnotcreated!"); returnNULL; } CGColorSpaceRelease(colorSpace); returncontext; }
5.图形的变换:
CGContextTranslateCTM CGContextRotateCTM CGContextScaleCTM
6.常用函数:
CGRectContainsPoint(); CGRectContainsRect(); CGRectIntersectsRect(); CGRectIntersection(); CGPointEqualToPoint(); CGSizeEqualToSize();
7.从原图片中取小图.
CGImageCreateWithImageInRect
8.屏幕快照:
#import "QuartzCore/QuartzCore.h" UIGraphicsBeginImageContext(yourView.frame.size); [[yourView layer] renderInContext:UIGraphicsGetCurrentContext()]; UIImage*screenshot =UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); from:http://www.cppblog.com/zhangyuntaoshe/articles/123066.html
合并两张bit图到一张image的方法
To graphically merge two images into a new image, you do something like this: UIImage *result = nil; unsignedchar *data = calloc(1,size.width*size.height*kBytesPerPixel); if (data != NULL) { // kCGImageAlphaPremultipliedLast 为预记录的#define value // 设置context上下文 CGContextRef context = CGBitmapContextCreate( data, size.width, size.height, 8, size.width*kBytesPerPixel, CGColorSpaceCreateDeviceRGB(), kCGImageAlphaPremultipliedLast); if (context != NULL) { UIGraphicsPushContext(context); // Image 为下载的背景图片,用于比较context CGContextTranslateCTM(context, 0, size.height); CGContextScaleCTM(context, 1, -1); [image drawInRect:imageRect]; [image2 drawInRect:image2Rect]; UIGraphicsPopContext(); CGImageRef imageRef = CGBitmapContextCreateImage(context); if (imageRef != NULL) { result = [UIImageimageWithCGImage:imageRef]; CGImageRelease(imageRef); } CGContextRelease(context); } free(data); } return result;
关键方法:
CGContextRef context = CGBitmapContextCreate(); CGContextTranslateCTM(); CGContextScaleCTM(); CGImageRef imageRef = CGBitmapContextCreateImage(context); CGImageRelease(imageRef);
相关文章推荐
- iPhone图形开发绘图小结
- iPhone图形开发绘图小结
- iPhone图形开发绘图小结
- iPhone图形开发绘图小结
- iPhone图形开发绘图小结
- iPhone图形开发绘图小结
- iPhone图形开发绘图小结
- IPhone图形开发绘图小结
- iPhone图形开发绘图小结
- iPhone图形开发绘图方法
- iPhone图形开发绘图教程
- iPhone图形开发绘图总结
- IOS 图形开发绘图小结
- ios/iphone开发图形绘制,类…
- iphone开发]从摄像头/相册获取图片,压缩图片,上传服务器小结
- DirectX 9.0c游戏开发手记之RPG编程自学日志之7: Drawing with DirectX Graphics (用DirectX图形绘图)(第3节)
- DirectX 9.0c游戏开发手记之RPG编程自学日志之13: Drawing with DirectX Graphics (用DirectX图形绘图)(第6节)
- DirectX 9.0c游戏开发手记之RPG编程自学日志之15: Drawing with DirectX Graphics (用DirectX图形绘图)(第8-9节)
- iphone开发 Quratz 2D 学习 ---什么是 graphics context(图形上下文)
- Android官方开发文档Training系列课程中文版:OpenGL绘图之图形定义