CGContext的基本認識

  1.  CGContextRef context = UIGraphicsGetCurrentContext(); 設置上下文  
  2.  CGContextMoveToPoint 開始畫線  
  3.  CGContextAddLineToPoint 畫直線  
  4.   
  5.  CGContextAddEllipseInRect 畫一橢圓  
  6.  CGContextSetLineCap 設置線條終點形狀  
  7.  CGContextSetLineDash 畫虛線  
  8.  CGContextAddRect 畫一方框  
  9.  CGContextStrokeRect 指定矩形  
  10.  CGContextStrokeRectWithWidth 指定矩形線寬度  
  11.  CGContextStrokeLineSegments 一些直線  
  12.   
  13.  CGContextAddArc 畫已曲線 前倆店爲中心 中間倆店爲起始弧度 最後一數據爲0則順時針畫 1則逆時針  
  14.  CGContextAddArcToPoint(context,0,0, 2, 9, 40);//先畫倆條線從point 到 弟1點 , 從弟1點到弟2點的線  切割裏面的圓  
  15.  CGContextSetShadowWithColor 設置陰影  
  16.  CGContextSetRGBFillColor 這隻填充顏色  
  17.  CGContextSetRGBStrokeColor 畫筆顏色設置  
  18.  CGContextSetFillColorSpace 顏色空間填充  
  19.  CGConextSetStrokeColorSpace 顏色空間畫筆設置  
  20.  CGContextFillRect 補充當前填充顏色的rect  
  21.  CGContextSetAlaha 透明度  
  22.   
  23.  CGContextTranslateCTM 改變畫布位置  
  24.  CGContextSetLineWidth 設置線的寬度  
  25.  CGContextAddRects 畫多個線  
  26.  CGContextAddQuadCurveToPoint 畫曲線  
  27.  CGContextStrokePath 開始繪製圖片  
  28.  CGContextDrawPath 設置繪製模式  
  29.  CGContextClosePath 封閉當前線路  
  30.  CGContextTranslateCTM(context, 0, rect.size.height);    CGContextScaleCTM(context, 1.0, -1.0);反轉畫布  
  31.  CGContextSetInterpolationQuality 背景內置顏色質量等級  
  32.  CGImageCreateWithImageInRect 從原圖片中取小圖  
  33.   
  34. //字符串的 寫入可用  nsstring本身的畫圖方法   
  35.  -(CGSize)drawInRect:(CGRect)rect   
  36.             withFont:(UIFont *)font   
  37.        lineBreakMode:(UILineBreakMode)lineBreakMode   
  38.            alignment:(UITextAlignment)alignment;來寫進去即可  
  39.   
  40. //對圖片放大縮小的功能就是慢了點  
  41.  UIGraphicsBeginImageContext(newSize);  
  42.  UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();  
  43.  UIGraphicsEndImageContext();  
  44.   
  45.  CGColorGetComponents() 返回顏色的各個直 以及透明度 可用只讀const float 來接收  是個數組  
  46.   
  47. //畫圖片   
  48.  CGImageRef image=CGImageRetain(img.CGImage);  
  49.  CGContextDrawImage(context, CGRectMake(10.0, height - 100.0, 90.0, 90.0), image);  
  50.   
  51. //實現逐變顏色填充方法 CGContextClip(context);  
  52.  CGColorSpaceRef rgb = CGColorSpaceCreateDeviceRGB();  
  53.  CGFloat colors[] =  
  54.     {  
  55.         204.0 / 255.0, 224.0 / 255.0, 244.0 / 255.0, 1.00,  
  56.         29.0 / 255.0, 156.0 / 255.0, 215.0 / 255.0, 1.00,  
  57.         0.0 / 255.0,  50.0 / 255.0, 126.0 / 255.0, 1.00,  
  58.     };  
  59.  CGGradientRef gradient = CGGradientCreateWithColorComponents(rgb, colors, NULL, sizeof(colors)/(sizeof(colors[0])*4));  
  60.  CGColorSpaceRelease(rgb);      
  61.  CGContextDrawLinearGradient(context, gradient,CGPointMake(0.0,0.0) ,CGPointMake(0.0,self.frame.size.height),                      
  62.     kCGGradientDrawsBeforeStartLocation);  
  63.       
  64. //注:  畫完圖後,必須  
  65.     先用CGContextStrokePath來描線,即形狀  
  66.     後用CGContextFillPath來填充形狀內的顏色.  
  67.   
  68. //填充一個路徑的時候,路徑裏面的子路徑都是獨立填充的。  
  69. //假如是重疊的路徑,決定一個點是否被填充,有兩種規則  
  70.  1,nonzero winding number rule:非零繞數規則,假如一個點被從左到右跨過,計數器+1,從右到左跨過,計數器-1,最後,如果結果是0,那麼不填充,如果是非零,那麼填充。  
  71.  2,even-odd rule: 奇偶規則,假如一個點被跨過,那麼+1,最後是奇數,那麼要被填充,偶數則不填充,和方向沒有關係。  
  72.   
  73.    
  74.  CGContextEOFillPath //使用奇偶規則填充當前路徑  
  75.  CGContextFillPath //使用非零繞數規則填充當前路徑  
  76.  CGContextFillRect //填充指定的矩形  
  77.  CGContextFillRects //填充指定的一些矩形  
  78.  CGContextFillEllipseInRect //填充指定矩形中的橢圓  
  79.  CGContextDrawPath //兩個參數決定填充規則,kCGPathFill表示用非零繞數規則,kCGPathEOFill表示用奇偶規則,kCGPathFillStroke表示填充,kCGPathEOFillStroke表示描線,不是填充  
  80.   
  81.   
  82. //設置當一個顏色覆蓋上另外一個顏色,兩個顏色怎麼混合  
  83. //默認方式是  
  84.  result = (alpha * foreground) + (1 - alpha) * background  
  85.   
  86.  CGContextSetBlendMode :設置blend mode.  
  87.  CGContextSaveGState :保存blend mode.  
  88.  CGContextRestoreGState:在沒有保存之前,用這個函數還原blend mode.  
  89.  CGContextSetBlendMode 混合倆種顏色  
發佈了22 篇原創文章 · 獲贊 8 · 訪問量 18萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章