Quartz2D知識點聚合案例

Quartz2D知識點聚合

基本

     //畫圖片UIImage *image = [UIImage imageNamed:@"阿貍頭像"];[image drawInRect:rect];//字體NSString *title = @"標題";NSMutableDictionary *atr = [NSMutableDictionary dictionary];atr[NSFontAttributeName] = [UIFont systemFontOfSize:15];//    atr[NSForeground?ColorAttributeName] = [UIColor greenColor];[title drawInRect:CGRectMake(120, 20, 100, 20) withAttributes:atr];//橢圓UIBezierPath *path = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(10, 20, 70, 130)];[path stroke];//方形UIBezierPath *path1 = [UIBezierPath bezierPathWithRect:CGRectMake(10, 200, 10, 50)];[path1 stroke];//圓角方形UIBezierPath *path2 = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(100, 30, 100, 100) cornerRadius:10];[path2 stroke];//一個角圓角UIBezierPath *path3 = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(210, 90, 80, 70) byRoundingCorners:UIRectCornerTopRight cornerRadii:CGSizeMake(20, 30)];[path3 stroke];//圓弧UIBezierPath *path4 = [UIBezierPath bezierPathWithArcCenter:CGPointMake(130, 230) radius:70 startAngle:0 endAngle:M_PI clockwise:YES];[path4 stroke];
// 1.獲得當前上下文CGContextRef ctx = UIGraphicsGetCurrentContext();// 2.拼接路徑UIBezierPath *path = [UIBezierPath bezierPath];[path moveToPoint:CGPointMake(10, 20)];[path addQuadCurveToPoint:CGPointMake(200, 80) controlPoint:CGPointMake(100, 200)];// 3. 添加路徑到上下文CGContextAddPath(ctx, path.CGPath);// 4.渲染上下文CGContextStrokePath(ctx);

變換

    //變換//平移
//    CGContextTranslateCTM(ctx, 10, 20);//旋轉CGContextRotateCTM(ctx, M_PI_4);//縮放CGContextScaleCTM(ctx, 1.2, 1.2);

上下文棧

  • 先保存或者還原上下文棧,再設置狀態
// 1.獲得當前上下文CGContextRef ctx = UIGraphicsGetCurrentContext();// 2.拼接路徑UIBezierPath *path = [UIBezierPath bezierPath];[path moveToPoint:CGPointMake(10, 20)];[path addQuadCurveToPoint:CGPointMake(200, 80) controlPoint:CGPointMake(100, 200)];// 3. 添加路徑到上下文CGContextAddPath(ctx, path.CGPath);//保存上下文CGContextSaveGState(ctx);//設置上下文狀態CGContextSetLineWidth(ctx, 10);[[UIColor redColor] set];// 4.渲染上下文CGContextStrokePath(ctx);// 2.拼接路徑path = [UIBezierPath bezierPath];[path moveToPoint:CGPointMake(100, 80)];[path addLineToPoint:CGPointMake(200, 200)];// 3. 添加路徑到上下文CGContextAddPath(ctx, path.CGPath);//還原上下文CGContextRestoreGState(ctx);//設置上下文狀態CGContextSetLineWidth(ctx, 5);[[UIColor blueColor] set];// 4.渲染上下文CGContextStrokePath(ctx);

生成圖片

    UIImage *image = [UIImage imageNamed:@"小黃人"];UIGraphicsBeginImageContextWithOptions(image.size, YES, 0);[image drawAtPoint:CGPointZero];NSString *str = @"小黃人";[str drawAtPoint:CGPointZero withAttributes:nil];image = UIGraphicsGetImageFromCurrentImageContext();UIGraphicsEndImageContext();

截圖

  • 給定裁減區域再渲染
    //開啟圖片上下文UIGraphicsBeginImageContext(view.frame.size);//獲得當前上下文CGContextRef ctx = UIGraphicsGetCurrentContext();//給定裁減區域-----//渲染圖片[view.layer renderInContext:ctx];//從當前上下文得到一張圖片UIImage *image = UIGraphicsGetImageFromCurrentImageContext();//關閉圖片上下文UIGraphicsEndImageContext();return image;

擦除

  • 先渲染到上下文,再擦除
 UITouch *touch = [touches anyObject];CGPoint point = [touch locationInView:self.imageView];//開啟上下文UIGraphicsBeginImageContextWithOptions(self.imageView.frame.size, NO, 0);//獲得當前上下文CGContextRef ctx = UIGraphicsGetCurrentContext();//渲染到上下文[self.imageView.layer renderInContext:ctx];//獲取擦除區域CGRect rect = CGRectMake(point.x - 10, point.y - 10, 20, 20);// 擦除上下文的內容CGContextClearRect(ctx, rect);// 生成圖片UIImage *image = UIGraphicsGetImageFromCurrentImageContext();_imageView.image = image;// 關閉上下文UIGraphicsEndImageContext();

轉載于:https://www.cnblogs.com/ShaoYinling/p/4649718.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/397828.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/397828.shtml
英文地址,請注明出處:http://en.pswp.cn/news/397828.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

skt7850鴻蒙策略,lol 英雄聯盟 SKT狀態回暖輕取外卡,SUP難擋Faker

MSI 第四日 SUP vs SKT雙方bpBAN LISTBAN:SUP:流浪 牛頭 豹女SKT:巴德 妖姬 魚人PICKSUP:大樹 男槍 冰女 盧錫安 錘石SKT:艾克 千玨 沙皇 EZ 布隆比賽開始,雙方正常對線開局。前期下路錘石多次勾中ez,男槍也來逼出EZ布…

spring集成struts2

Struts2前身是WebWork,核心并沒有改變,其實就是把WebWork改名為struts2,與Struts1一點關系沒有。 Struts2中通過ObjectFactory接口實現創建及獲取Action實例,類似于Spring的IoC容器,所以Action實例可以由ObjectFactory…

slqite3庫查詢數據處理方式_SQLite3命令操作大全

SQLite3命令操作大全SQLite庫包含一個名字叫做sqlite3的命令行,它可以讓用戶手工輸入并執行面向SQLite數據庫的SQL命令。本文檔提供一個樣使用sqlite3的簡要說明.一.qlite3一些常用Sql語句操作創建表: create table 表名(元素名 類型,…);刪除表: drop …

Android學習之查看網絡圖片

在這里小編學習了查看網絡圖片的小案例,: 初始界面: 點擊瀏覽后,效果如下: 需要注意的是 該案例需要獲取聯網權限,即: <uses-permission android:name"android.permission.INTERNET"/>具體步驟如下: 1.定義并初始化控件: private EditText etImageUrl;private …

AutoLayout 淺析動畫

1.AutoLayout相關的幾個易混淆的方法 setNeedsLayout layoutIfNeeded layoutSubViews setNeedsUpdateConstraints updateConstraitsIfNeed updateConstraints 子視圖在界面上的顯示大概經過了&#xff1a;更新約束-通過約束依賴關系得到具體的frame-展示到界面。上面幾個是和au…

vue 轉為靜態html,Vue CLI 3使用:HTML和靜態資源(五)

HTMLpublic/index.html 文件是一個會被 html-webpack-plugin 處理的模板。構建中&#xff0c;各種資源路徑會被注入解析。可以使用 lodash template 語法插入內容。用來做不轉義插值&#xff1b;用來做 HTML 轉義插值&#xff1b;用來描述 JavaScript 流程控制。除了被 html-we…

animate css3 應用的借鑒,一個同事寫的JS

$("#banner").height($(window).height()-125);$(window).resize(function(){ $("#banner").height($(window).height()-125);}); //首頁幻燈$(".indeximgs:first").show();var i0;$(".leftbut").click(function(){$(".indexim…

從html導出帶樣式的excel,Jquery導出帶樣式的Excel

工作中做導出的時候&#xff0c;需要導出自定義的表格或嫌棄導出的Excel格式太難看了。需要設置顏色、字號大小、加粗、合并單元格等等。特性&#xff1a;支持過濾 某個位置支持過濾 img 標簽支持過濾 a 標簽支持過濾 input 標簽支持包含 行內樣式。HTML頁面&#xff1a;HTML頁…

elementui from表單提交_elementui upload與form一起提交

學生基本信息管理操作中&#xff0c;有照片&#xff0c;可以上傳也可以不上傳&#xff0c;在表單界面可以修改照片&#xff0c;el-upload控件可以帶額外參數提交&#xff0c;jquery的post模擬不了成表單帶文件提交的方式&#xff0c;因此&#xff0c;判斷如果有上傳文件時&…

information_schema.character_sets 學習

information_schema.character_sets 表用于查看字符集的詳細信息 1、character_sets 常用列說明&#xff1a; 1、character_set_name&#xff1a;    字符集名 2、default_collate_name&#xff1a;    默認排序規則   3、description&#xff1a;         …

asp.net mvc 用Redis實現分布式集群共享Session。

1、這兩天研究Redis搞分布式session問題&#xff0c;網上找的資料都是用ServiceStack.Redis來實現的&#xff0c;但是在做性能測試的時候發現最新的v4版本有限制每小時候最多請求6000次&#xff0c;因為官網開始商業化要收費了&#xff0c;好坑爹的說&#xff0c;還好我前期弄了…

如何用計算機求和,求和計算器

求和計算器您可以使用此求和計算器快速計算預定范圍內某個表達式的序列之和。如何使用求和計算器輸入總和的表達式輸入上限和下限提供表達式中使用的變量的詳細信息單擊“計算”按鈕生成結果。求和Σ符號計算器k ∑n 0變量:nixyzabc 103740支持的運算符常量和函數算術運算符加“…

Zookeeper概述、特點、數據模型

Zookeeper1.Zookeeper概述Zookeeper是一個工具&#xff0c;可以實現集群中的分布式協調服務。所謂的分布式協調服務&#xff0c;就是在集群的節點中進行可靠的消息傳遞&#xff0c;來協調集群的工作。Zookeeper之所以能夠實現分布式協調服務&#xff0c;靠的就是它能夠保證分布…

云計算機創意名,有創意的道路名字推薦,分享一些好聽有內涵的路名

提到龍崗板塊&#xff0c;“風向”一直飄忽不定。原本地鐵4號線今年通車&#xff0c;但是因為五象火車站的規劃建設&#xff0c;暫時未開通;機場線已經敲定&#xff0c;然而沒有龍崗的份…… [本文來自&#xff1a;www.777y.com]雖然機場線暫時無緣(可以期待下)&#xff0c;但是…

250W電源帶i7+GTX1080?

電源的科學: Q1&#xff1a;電源的額定功率是什么&#xff1f;峰值功率又是什么&#xff1f;A1&#xff1a;電源的額定功率就是電源正常工作時的功率&#xff0c;它的值為用電器的額定電壓乘以額定電流。而峰值功率指的是電源短時間內能達到的最大功率&#xff0c; 一般情況下電…

uml里的extend和include_用例圖中包含(include)擴展(extend)和泛化(generalization)關系詳解...

標簽&#xff1a;uml用例圖是解決用戶需求的圖&#xff0c;畫好用例圖一定要理清用例之間的關系。用例之間有三種關系&#xff1a;包含(include)擴展(extend)和泛化(generalization)。下面介紹三者的相同點和不同點以便區分&#xff1a;相同點&#xff1a; 三者都是從現有的用例…

數據庫的數據類型及運算符

一、數據類型 1、整數類形&#xff1a; &#xff08;重點記憶&#xff0c;常用&#xff09;有符號整形&#xff1a;int--每個int類型的數據按4個字節存儲&#xff0c;其中1位表示整數值的正負號&#xff0c;其他31位表示整數值長度和大小&#xff1b; 大整形&#xff1a;bigint…

浙江大學計算機博士很難復試專業課,浙江大學計算機學院2020年博士研究生招生復試公告...

一、復試資格通過計算機學院博士生材料初審的考生獲得復試資格&#xff0c;名單見附件。二、復試內容和成績組成博士研究生的復試內容主要包括對考生思想政治素質和品德、學術水平考核。1&#xff0e; 思想政治素質和道德品質考核思想政治素質和品德考核是博士研究生招生復試的…

推薦幾款熱門的敏捷開發工具

不知道有多少企業在很好的應用敏捷模式&#xff1b; 在今天的文章中&#xff0c;我們將一同了解更多有趣、高效且面向敏捷的項目管理工具。 Atlassian Jira/ Jira Agile   Atlassian的Jira是一款熱門工具&#xff0c;用于追蹤產品開發、幫助團隊組織問題、分配工作并保證團隊…

語言語法糖_【c#】幾種常用語法糖

語法糖&#xff08;syntactic sugar&#xff09;是由英國計算機科學家Peter J. Landin發明的術語&#xff0c;指計算機語言中添加的某種語法。這種語法不影響語言的功能&#xff0c;但更方便使用。在開發中使用語法糖能夠讓程序變得更短&#xff0c;使看起來更美觀些~空檢查pub…