CGContextRef 用法總結(jié)


CGContextRef context = UIGraphicsGetCurrentContext(); 設(shè)置上下文

CGContextMoveToPoint 開始畫線

CGContextAddLineToPoint 畫直線

CGContextAddEllipseInRect 畫一橢圓

CGContextSetLineCap 設(shè)置線條終點形狀

CGContextSetLineDash 畫虛線

CGContextAddRect 畫一方框

CGContextStrokeRect 指定矩形

CGContextStrokeRectWithWidth 指定矩形線寬度

CGContextStrokeLineSegments 一些直線

CGContextAddArc 畫已曲線 前倆店為中心 中間倆店為起始弧度 最后一數(shù)據(jù)為0則順時針畫 1則逆時針

CGContextAddArcToPoint(context,0,0, 2, 9, 40);//先畫倆條線從point 到 弟1點 镣煮, 從弟1點到弟2點的線 切割里面的圓

CGContextSetShadowWithColor 設(shè)置陰影

CGContextSetRGBFillColor 這只填充顏色

CGContextSetRGBStrokeColor 畫筆顏色設(shè)置

CGContextSetFillColorSpace 顏色空間填充

CGConextSetStrokeColorSpace 顏色空間畫筆設(shè)置

CGContextFillRect 補充當(dāng)前填充顏色的rect

CGContextSetAlaha 透明度

CGContextTranslateCTM 改變畫布位置

CGContextSetLineWidth 設(shè)置線的寬度

CGContextAddRects 畫多個線

CGContextAddQuadCurveToPoint 畫曲線

CGContextStrokePath 開始繪制圖片

CGContextDrawPath 設(shè)置繪制模式

CGContextClosePath 封閉當(dāng)前線路

CGContextTranslateCTM(context, 0, rect.size.height); CGContextScaleCTM(context, 1.0, -1.0);反轉(zhuǎn)畫布
CGContextSetInterpolationQuality 背景內(nèi)置顏色質(zhì)量等級

CGImageCreateWithImageInRect 從原圖片中取小圖

字符串的寫入可用 nsstring本身的畫圖方法 - (CGSize)drawInRect:(CGRect)rect withFont:(UIFont *)font lineBreakMode:(UILineBreakMode)lineBreakMode alignment:(UITextAlignment)alignment;來寫進去即可

對圖片放大縮小的功能就是慢了點
UIGraphicsBeginImageContext(newSize); UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext();

CGColorGetComponents() 返回顏色的各個直 以及透明度 可用只讀const float 來接收 是個數(shù)組

畫圖片 CGImageRef image=CGImageRetain(img.CGImage); CGContextDrawImage(context, CGRectMake(10.0, height - 100.0, 90.0, 90.0), image);

實現(xiàn)逐變顏色填充方法

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);
    

注: 畫完圖后,必須
先用CGContextStrokePath來描線,即形狀
后用CGContextFillPath來填充形狀內(nèi)的顏色.

填充一個路徑的時候,路徑里面的子路徑都是獨立填充的涝焙。
假如是重疊的路徑,決定一個點是否被填充镀层,有兩種規(guī)則
1,nonzero winding number rule:非零繞數(shù)規(guī)則拌汇,假如一個點被從左到右跨過,計數(shù)器+1后众,從右到左跨過放闺,計數(shù)器-1祟昭,最后,如果結(jié)果是0怖侦,那么不填充篡悟,如果是非零,那么填充匾寝。
2,even-odd rule: 奇偶規(guī)則搬葬,假如一個點被跨過,那么+1艳悔,最后是奇數(shù)急凰,那么要被填充,偶數(shù)則不填充猜年,和方向沒有關(guān)系抡锈。

Function Description

CGContextEOFillPath使用奇偶規(guī)則填充當(dāng)前路徑

CGContextFillPath 使用非零繞數(shù)規(guī)則填充當(dāng)前路徑

CGContextFillRect 填充指定的矩形

CGContextFillRects填充指定的一些矩形

CGContextFillEllipseInRect 填充指定矩形中的橢圓

CGContextDrawPath 兩個參數(shù)決定填充規(guī)則,kCGPathFill表示用非零繞數(shù)規(guī)則乔外,kCGPathEOFill表示用奇偶規(guī)則床三,kCGPathFillStroke表示填充,kCGPathEOFillStroke表示描線杨幼,不是填充

設(shè)置當(dāng)一個顏色覆蓋上另外一個顏色撇簿,兩個顏色怎么混合
默認方式是

result = (alpha * foreground) + (1 - alpha) * background

CGContextSetBlendMode :設(shè)置blend mode.

CGContextSaveGState :保存blend mode.

CGContextRestoreGState:在沒有保存之前,用這個函數(shù)還原blend mode.

CGContextSetBlendMode 混合倆種顏色



最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末差购,一起剝皮案震驚了整個濱河市补疑,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌歹撒,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,252評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件诊胞,死亡現(xiàn)場離奇詭異暖夭,居然都是意外死亡锹杈,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評論 3 399
  • 文/潘曉璐 我一進店門迈着,熙熙樓的掌柜王于貴愁眉苦臉地迎上來竭望,“玉大人,你說我怎么就攤上這事裕菠∫澹” “怎么了?”我有些...
    開封第一講書人閱讀 168,814評論 0 361
  • 文/不壞的土叔 我叫張陵奴潘,是天一觀的道長旧烧。 經(jīng)常有香客問我,道長画髓,這世上最難降的妖魔是什么掘剪? 我笑而不...
    開封第一講書人閱讀 59,869評論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮奈虾,結(jié)果婚禮上夺谁,老公的妹妹穿的比我還像新娘。我一直安慰自己肉微,他們只是感情好匾鸥,可當(dāng)我...
    茶點故事閱讀 68,888評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著碉纳,像睡著了一般勿负。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上村象,一...
    開封第一講書人閱讀 52,475評論 1 312
  • 那天笆环,我揣著相機與錄音,去河邊找鬼厚者。 笑死躁劣,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的库菲。 我是一名探鬼主播账忘,決...
    沈念sama閱讀 41,010評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼熙宇!你這毒婦竟也來了鳖擒?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,924評論 0 277
  • 序言:老撾萬榮一對情侶失蹤烫止,失蹤者是張志新(化名)和其女友劉穎蒋荚,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體馆蠕,經(jīng)...
    沈念sama閱讀 46,469評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡期升,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,552評論 3 342
  • 正文 我和宋清朗相戀三年惊奇,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片播赁。...
    茶點故事閱讀 40,680評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡颂郎,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出容为,到底是詐尸還是另有隱情乓序,我是刑警寧澤,帶...
    沈念sama閱讀 36,362評論 5 351
  • 正文 年R本政府宣布坎背,位于F島的核電站替劈,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏沼瘫。R本人自食惡果不足惜抬纸,卻給世界環(huán)境...
    茶點故事閱讀 42,037評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望耿戚。 院中可真熱鬧湿故,春花似錦、人聲如沸膜蛔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽皂股。三九已至墅茉,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間呜呐,已是汗流浹背就斤。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留蘑辑,地道東北人洋机。 一個月前我還...
    沈念sama閱讀 49,099評論 3 378
  • 正文 我出身青樓,卻偏偏與公主長得像洋魂,于是被迫代替她去往敵國和親绷旗。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,691評論 2 361

推薦閱讀更多精彩內(nèi)容