Quartz2D_Day3 旋轉(zhuǎn)、縮放、平移和圖片剪切

矩形操作

原文圖形的旋轉(zhuǎn)、縮放和平移都是通過以下三個方法實現(xiàn)(統(tǒng)稱:矩形操作):
1.旋轉(zhuǎn):CGContextRotateCTM(<#CGContextRef c#>, <#CGFloat angle#>)
2.縮放:CGContextScaleCTM(<#CGContextRef c#>, <#CGFloat sx#>, <#CGFloat sy#>)
3.平移: CGContextTranslateCTM(<#CGContextRef c#>, <#CGFloat tx#>, <#CGFloat ty#>)

注意:

1、設(shè)置矩陣操作必須要在添加圖形之前,如果設(shè)置在添加圖形之后的話,此時它已經(jīng)畫完了,無效
2、所有的矩形操作都是相對整個UIView的Layer層而言的,并不是單獨針對當(dāng)前繪制的圖形操作

實例代碼:

- (void)drawRect:(CGRect)rect
{
    //畫四邊形
    //獲取圖形上下文
    CGContextRef ctx=UIGraphicsGetCurrentContext();
    //矩陣操作
    //注意點:設(shè)置矩陣操作必須要在添加繪圖信息之前
    //旋轉(zhuǎn)45度
    CGContextRotateCTM(ctx, M_PI_4);
    
    //繪圖
    CGContextAddRect(ctx, CGRectMake(150, 100, 100, 100));
    //渲染
    CGContextStrokePath(ctx);
}

圖片剪切

Paste_Image.png

重要的指令:CGContextClip(ctx);

#pragma mark - 圖片剪切
- (void)CircleImage{
    //1.獲取圖形上下文
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    
    //2、畫圓,以便以后指定可以顯示圖片的范圍
//    CGContextAddArc(ctx, 250, 300, 50, 0, M_PI*2, 0);
    CGContextAddEllipseInRect(ctx, CGRectMake(250, 300, 100, 100));
    
    //3、指定上下文中可以顯示內(nèi)容的范圍就是圓的范圍
    CGContextClip(ctx);
    
    //4、再添加圖片
    UIImage *image = [UIImage imageNamed:@"image.jpeg"];
    [image drawAtPoint:CGPointMake(200, 250)];
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 原文出處 http://blog.csdn.net/u014286994/article/details/5133...
    Poison_19ce閱讀 1,570評論 0 2
  • 一、使用UIImage和CGImage處理圖位 可用通過Quartz的圖片對象或原始圖片數(shù)據(jù)來創(chuàng)建UIImage。...
    MD_963閱讀 1,900評論 0 3
  • 一、Paths (路徑) 路徑定義了一個或多個形狀或子路徑。子路徑可以由直線、曲線或兩者兼而有之,它可以是打開的或...
    尋形覓影閱讀 1,377評論 1 5
  • 人所有的焦慮,似乎都來自精神層面的需求與現(xiàn)狀或者近期發(fā)展現(xiàn)狀的不匹配。 適度的不匹配,如果墊墊腳或者系統(tǒng)科學(xué)的努力...
    小魚兒ya閱讀 950評論 0 0
  • 本來想寫一些自我的反思,不過卻想起了一些記憶。 最近吳亦凡重唱了《時間煮雨》,我對于歌手是完全不認(rèn)識,我對男的沒興...
    K貓閱讀 530評論 0 2

友情鏈接更多精彩內(nèi)容