IOS影像處理(1)繪製簡單的幾何圖形

來源:互聯網
上載者:User

標籤:style   blog   http   color   io   os   strong   sp   div   

通過CoreGraphic繪製映像一般有以下幾個步驟:

1:擷取圖形內容物件

繪製映像首先需要取得圖形內容物件(CGContextRef),系統中維護一個CGContextRef的棧,在UI控制項的drawRect方法調用前,系統會為當前繪圖環境建立一個圖形內容物件並且置於CGContextRef棧頂,通過UIGraphicsGetCurrentContext()可以取得這個映像內容物件。

2:設定繪畫的屬性,可以配置線條顏色,填充顏色,線條寬度,陰影,線段端點形狀,點線模式,線條連接點風格,疊加模式等屬性 

3:通過API繪製映像

 

- (void)drawRect:(CGRect)rect{    //擷取映像內容物件    CGContextRef context = UIGraphicsGetCurrentContext();        //設定線段寬度    CGContextSetLineWidth(context, 2);    //通過RGB模式設定線條顏色,最後一個參數代表透明度    CGContextSetRGBStrokeColor(context, 250/255.0, 250/255.0, 250/255.0, 1);    //設定填充顏色    CGContextSetFillColorWithColor(context, [UIColor greenColor].CGColor);    //設定陰影,第二個參數是陰影在x軸以及y軸的位移量,第三個參數設定陰影的模糊程度,0表示不模糊,陰影預設顏色為黑色,透明度0.3    CGContextSetShadow(context, CGSizeMake(3, 3), 5);    //設定線段端點形狀,第二個參數是個枚舉類型,包含3個選項    CGContextSetLineCap(context, kCGLineCapRound);    //設定線條串連風格    CGContextSetLineJoin(context, kCGLineJoinRound);            //繪製線段,points是點數組,兩個點確定一條線,下面的數組有8個點,可以確定4條線段    const CGPoint points[] = {CGPointMake(10, 30),CGPointMake(100, 30),CGPointMake(100, 30),CGPointMake(100, 100),CGPointMake(100, 100),CGPointMake(10, 100),CGPointMake(10, 100),CGPointMake(10, 30)};    //繪製    CGContextStrokeLineSegments(context, points, 8);        //填充矩形    CGContextFillRect(context, CGRectMake(120, 30, 80, 50));    //繪製矩形    CGContextStrokeRect(context, CGRectMake(120, 100, 80, 50));        //繪製橢圓    CGContextStrokeEllipseInRect(context, CGRectMake(220, 30, 80, 50));        //繪製虛線    //繪製虛線需要設定點線模式    CGFloat pattern[] = {5,5};    CGContextSetLineDash(context, 1, pattern, 2);        const CGPoint points2[] = {CGPointMake(100, 190),CGPointMake(220, 190)};    CGContextStrokeLineSegments(context, points2, 2);}

 

運行結果

 

上面的代碼中設定點線模式時用到了CGContextSetLineDash這個函數,函數有4個參數,第一個參數表示映像內容物件,第二個參數配合第三個參數用來指定第一個點線的長度,第三個參數是一個浮點數組,最後一個參數是第三個參數中數組的長度。

我們傳的數組是{5,5}表示點線長5,間隔5,如果數組為{2,3,4}表示點線長2,間隔3,點線長4,間隔2,點線長3,間隔4這樣依次下去。

數組第一個數字減去函數的第2個參數表示第一個點線的長度,比如上例中數組第一個數字是5,參數第2個數字是1,所以第一個點線長為4。

 

IOS影像處理(1)繪製簡單的幾何圖形

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.