html5 canvas 筆記五(合成與裁剪)

組合 Compositing

globalCompositeOperation

syntax:

 
globalCompositeOperation = type
 

注意:下面所有例子中,藍色方塊是先繪制的,即“已有的 canvas 內容”,紅色圓形是后面繪制,即“新圖形”。

source-over  這是默認設置,新圖形會覆蓋在原有內容之上。

Image:Canvas_composite_srcovr.png

destination-over  會在原有內容之下繪制新圖形。

Image:Canvas_composite_destovr.png

source-in  新圖形會僅僅出現與原有內容重疊的部分。其它區域都變成透明的。

Image:Canvas_composite_srcin.png

destination-in  原有內容中與新圖形重疊的部分會被保留,其它區域都變成透明的。

Image:Canvas_composite_destin.png

source-out  結果是只有新圖形中與原有內容不重疊的部分會被繪制出來。

Image:Canvas_composite_srcout.png

destination-out  原有內容中與新圖形不重疊的部分會被保留。

Image:Canvas_composite_destout.png

source-atop  新圖形中與原有內容重疊的部分會被繪制,并覆蓋于原有內容之上。

Image:Canvas_composite_srcatop.png

destination-atop  原有內容中與新內容重疊的部分會被保留,并會在原有內容之下繪制新圖形

Image:Canvas_composite_destatop.png

lighter  兩圖形中重疊部分作加色處理。

Image:Canvas_composite_lighten.png

darker  兩圖形中重疊的部分作減色處理。

Image:Canvas_composite_darken.png

xor  重疊的部分會變成透明。

Image:Canvas_composite_xor.png

copy  只有新圖形會被保留,其它都被清除掉。

Image:Canvas_composite_copy.png

裁切路徑 Clipping paths

裁切路徑和普通的 canvas 圖形差不多,不同的是它的作用是遮罩,用來隱藏沒有遮罩的部分。

syntax

 
clip()
 

實例:

 1 function draw() {
 2   var ctx = document.getElementById('canvas').getContext('2d');
 3   ctx.fillRect(0,0,150,150);
 4   ctx.translate(75,75);
 5 
 6   // Create a circular clipping path
 7   ctx.beginPath();
 8   ctx.arc(0,0,60,0,Math.PI*2,true);
 9   ctx.clip();
10 
11   // draw background
12   var lingrad = ctx.createLinearGradient(0,-75,0,75);
13   lingrad.addColorStop(0, '#232256');
14   lingrad.addColorStop(1, '#143778');
15   
16   ctx.fillStyle = lingrad;
17   ctx.fillRect(-75,-75,150,150);
18 
19   // draw stars
20   for (var j=1;j<50;j++){
21     ctx.save();
22     ctx.fillStyle = '#fff';
23     ctx.translate(75-Math.floor(Math.random()*150),
24                   75-Math.floor(Math.random()*150));
25     drawStar(ctx,Math.floor(Math.random()*4)+2);
26     ctx.restore();
27   }
28   
29 }
30 function drawStar(ctx,r){
31   ctx.save();
32   ctx.beginPath()
33   ctx.moveTo(r,0);
34   for (var i=0;i<9;i++){
35     ctx.rotate(Math.PI/5);
36     if(i%2 == 0) {
37       ctx.lineTo((r/0.525731)*0.200811,0);
38     } else {
39       ctx.lineTo(r,0);
40     }
41   }
42   ctx.closePath();
43   ctx.fill();
44   ctx.restore();
45 }

?

轉載于:https://www.cnblogs.com/hzj680539/p/5068487.html

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

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

相關文章

一個能夠編寫、運行SQL查詢并可視化結果的Web應用:SqlPad

SqlPad 是一個能夠用于編寫、運行SQL查詢并可視化結果的Web應用。支持 PostgreSQL、MySQL 和 SQL Server。SqlPad 目前僅適合單個團隊在內網中使用&#xff0c;它直接通過網絡連接到數據庫服務器&#xff0c;任何人可以在上面執行任意 SQL 語句。安裝首先安裝 Node.js.安裝好No…

加拿大計算機語言學,加拿大語言學專業排名

語言學專業簡言之就是學習語言&#xff0c;包括語言的結構、形成、歷史、以及人們如何使用語言等等。下面出國留學網小編和大家聊一聊2018加拿大大學語言學專業排名&#xff0c;希望對同學們有所幫助&#xff0c;歡迎閱讀。1麥吉爾大學 McGill University麥吉爾大學是全球大學校…

UIView之常用方法

UIView之常用方法 將一個視圖添加為子視圖&#xff0c;并使之在最上面顯示 -(void)addSubView:(UIView *)view;將指定子視圖移動到頂部 -(void)bringSubViewToFront:(UIView *)view;將指定之視圖放到最下面 -(void)sendSubViewToBack:(UIView *)view;將指定視圖添加到subviews數…

Web前端開發框架對比

近幾年隨著 jQuery、Ext 以及 CSS3 的發展&#xff0c;以 Bootstrap 為代表的前端開發框架如雨后春筍般擠入視野&#xff0c;可謂應接不暇。不論是桌面瀏覽器端還是移動端都涌現出很多優秀的框架&#xff0c;極大豐富了開發素材&#xff0c;也方便了大家的開發。這些框架各有特…

html5 篩子,html5搖骰子游戲

骰子游戲body#can;can;ctx;[];;;]]];window.οnlοad function(){can);ctx);ctx.clearRect(0,0,can.width,can.height);for(var i0;ictx.fillStyle orange;ctx.fillRect(diceCoordinates[i][0],diceCoordinates[i][1],40,40);draw(diceCoordinates[i],i,pointCoordinates[i]);…

關于xcode7編譯舊項目崩潰-[UIApplication _runWithMainScene:transitionContext:completion:]

崩潰原因 crash&#xff1a;Assertion failure in -[UIApplication _runWithMainScene:transitionContext:completion:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit_Sim/UIKit-&#xff08; *** Terminating app due to uncaught exception NSInternalInconsiste…

linq.js的用法

linq.js 詳細介紹linq.js 是一個 JavaScript 實現的 LINQ。主要特性&#xff1a;實現所有 .NET 4.0 的方法complete lazy evaluationfull IntelliSense support for VisualStudiotwo versions - linq.js and jquery.linq.js (jQuery plugin)support Windows Script Hostbinding…

標準MD5加密算法

標準MD5加密算法: public class Md5 {public static String getMd5(String s) {char hexDigits[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,a, b, c, d, e, f };try {byte[] strTemp s.getBytes();MessageDigest mdTemp MessageDigest.getInstance("md5");mdTemp.update(s…

程序員大牛們的經典語錄

1、很多問題不見得會出在你身上&#xff0c;但你亦需要想法解決問題&#xff0c;否則就會變成你的問題&#xff1b;2、懂得但策略的說不&#xff08;不會這個準備累死吧&#xff0c;程序員&#xff09;&#xff1b;3、我考進事業單位&#xff0c;呵呵&#xff0c;沒有傳說中的那…

linux下創建的符號鏈接的權限

今天為shell腳本創建符號鏈接的時候突然發現的, 創建的符號鏈接文件的默認權限是 777, 而想要這個腳本可執行, 必須為真正的文件加上 x 權限才可以. 轉載于:https://www.cnblogs.com/vanwoos/p/5075656.html

計算機osta試題,OSTA試題庫.doc

OSTA試題庫章節單選多選填空判斷小計計算機基礎知識64152020119Windows操作系統4810101583計算機網絡應用4810151184Word文檔處理51172120109Excel電子表格處理4515152095PowerPoint演示文稿制作5215112098多媒體技術4512102087合計35394102126675計算機基礎知識(64152020120)一…

SQLSERVER得到數據庫中所有表字段及字段中文描述

如何得到數據庫中所有表字段及字段中文描述以下資料,通過csdn的一位師兄從SQL版主那得到:sql中SELECT (case when a.colorder1 then d.name else end) N表名, a.colorder N字段序號, a.name N字段名, (case when COLUMNPROPERTY( a.id,a.name,IsIdentity)1 then √else end)…

SQL Server 2008 R2——使用數字輔助表(master..spt_values)實現用計數字段對記錄進行重復顯示...

SQL Server 2008 R2——使用數字輔助表&#xff08;master..spt_values&#xff09;實現用計數字段對記錄進行重復顯示 原文:SQL Server 2008 R2——使用數字輔助表&#xff08;master..spt_values&#xff09;實現用計數字段對記錄進行重復顯示版權聲明 版權聲明&#xff1a;原…

編程界十大頂級IDE

IDE是集成開發環境&#xff08;Integrated Development Environment&#xff09;縮寫。IDE是一種個編程軟件&#xff0c;是集成了程序員語言開發中會需要的一些基本工具、基本環境和其他輔助功能的應用軟件。IDE一般包含三個主要組件&#xff1a;源代碼編輯器&#xff08;Edito…

就業局培訓計算機心得,人社局計算機培訓心得體會.doc

人社局計算機培訓心得體會人社局計算機培訓心得體會篇一&#xff1a;計算機培訓心得體會 計算機培訓心得體會: 2017年暑假&#xff0c;我參加了骨干教師計算機培訓。通過5天培訓老師認真的講解、不厭其煩的答疑&#xff0c;同班學習的各校同行們激情四射的討論交流&#xff0c;…

有點成熟的短句,最新個性簽名

01、從前的人&#xff0c;多認真。02、我不希望你死于一事無成。03、放棄自我&#xff0c;而后成就自我。04、漫漫人生路&#xff0c;我們且行且珍惜&#xff01;05、你我只是初見&#xff0c;我便愛上了你。06、放棄了所有&#xff0c;卻等不來你說的承諾。07、不問風&#xf…

iscroll 4.0 滾動(水平和垂直)

1、概述 iscroll 專注于頁面滾動js。Iscroll滾動做的挺好,特別是針對手機網頁&#xff08;android、iphone&#xff09;正好彌補手動滑屏的遺缺&#xff0c;而今研究一番&#xff0c;把代碼貼出來&#xff0c;供大家參考。 2、iscroll使用說明 初始化iScroll wrapperhour//標識…

布法羅博士計算機專業回國人員,四名UW學生參加愛達荷州國家實驗室的實習計劃...

中游石油和天然氣運營正日益面臨代價高昂&#xff0c;受到嚴格審查的事件&#xff0c;這些事件源于老化(泄漏和爆炸)&#xff0c;自然事件(洪水&#xff0c;地震活動和極端天氣)以及網絡入侵和攻擊。解決這些問題的一種方法涉及使用集成的智能監控系統或安全嵌入式智能(SEI)。懷…

學會拐彎,才是人生大智慧(深度好文)

人生天地間&#xff0c;路路九曲彎&#xff0c;從來沒有筆直的。水能直至大海&#xff0c;就是因為它巧妙地避開所有障礙&#xff0c;不斷拐彎前行。許多聰明人沒能走上成功之路&#xff0c;不少是因為撞了南墻不回頭。人生路上難免會遇到困難&#xff0c;拐個彎&#xff0c;繞…

excel列顯示形式互換(字母與數字)

以office2007為例&#xff1a; excel選項》公式》使用公式下的R1C1引用樣式 打上鉤顯示形式為數字&#xff0c;不打鉤顯示形式為字母 轉載于:https://www.cnblogs.com/lianrenjujishou/p/5079776.html