好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > Canvas globalCompositeOperation

Canvas globalCompositeOperation

熱門標簽:ok電銷機器人 電話機器人技術 黃石ai電銷機器人呼叫中心 智能電銷機器人被禁用了么 如何查看地圖標注 高德地圖標注商戶怎么標 欣鼎電銷機器人 效果 地圖標注軟件打印出來 惡搞電話機器人

在默認情況之下,如果在Canvas之中將某個物體(源)繪制在另一個物體(目標)之上,那么瀏覽器就會簡單地把源特體的圖像疊放在目標物體圖像上面。

簡單點講,在Canvas中,把圖像源和目標圖像,通過Canvas中的 globalCompositeOperation 操作,可以得到不同的效果,比如下圖:

正如上圖,紅蘋果和黑色的圓,通過 globalCompositeOperationdestination-out 就變成了被咬了一口的紅蘋果。也就是說,在Canvas中通過圖像的合成,我們可以實現一些與眾不同的效果,比如我們要制作一個刮刮卡抽獎的效果。 今天我們就來了解Canvas中的圖像合成怎么使用。

圖像合成 globalCompositeOperation 類型

在Canvas中 globalCompositeOperation 屬性的值總共有 26 種類型,每種類型都將前生不一樣的效果,當然你可能看到效果都將不樣,甚至有一些效果在瀏覽器中并不能正常的渲染。不過不要緊,我們簡單的了解這26種類型其代表的含意以及產生的效果。

ctx.save(); 
ctx.translate(w / 2, h / 2);
ctx.fillStyle = 'red'; 
ctx.beginPath(); 
ctx.arc(-40, 20, 80, 0, Math.PI * 2, true); 
ctx.closePath(); 
ctx.fill();

上面的代碼將在Canvas畫布上繪制一個半徑為 80px 的紅色圓形,在這里把它稱為圖像源。

 ctx.fillStyle = 'orange'; 
 ctx.beginPath();
 ctx.arc(40, 20, 80, 0, Math.PI * 2, true); 
 ctx.closePath(); 
 ctx.fill();
 ctx.restore();

這段代碼將在Canvas畫布上繪制一個半徑為 80px 的橙色圓形,在這里把它稱為圖像目標。在圖像源和目標圖像之間設置 globalCompositeOperation 的值,就可以完成圖像的合成操作:

ctx.save(); 
ctx.translate(w / 2, h / 2); 
ctx.fillStyle = 'red'; 
ctx.beginPath(); 
ctx.arc(-40, 20, 80, 0, Math.PI * 2, true); 
ctx.closePath(); 
ctx.fill(); 
ctx.globalCompositeOperation = 'source-in'; 
ctx.fillStyle = 'orange'; 
ctx.beginPath(); 
ctx.arc(40, 20, 80, 0, Math.PI * 2, true); 
ctx.closePath(); 
ctx.fill(); 
ctx.restore();

此時得到的效果如下:

source-over

source-overglobalCompositeOperation 屬性的默認值。源圖形覆蓋目標圖形,源圖形不透明的地方顯示源圖形,其余顯示目標圖形

source-in

source-in :目標圖形和源圖形重疊且都不透明的部分才被繪制

source-out

source-out :目標圖形和源圖形不重疊的部分會被繪制

source-atop

source-atop :目標圖形和源圖形內容重疊的部分的目標圖形會被繪制

destination-over

destination-over :目標圖形和源圖形內容后面的目標圖形會被繪制

destination-in

destination-in :目標圖形和源圖形重疊的部分會被保留(源圖形),其余顯示為透明

其它的就不一一展示了。具體每個值對應的描述,可以點擊這里查閱 。

結合globalAlpha控制圖像合成操作

在Canvas中有兩個屬性 globalAlphaglobalCompositeOperation 來控制圖像合成操作:

  • globalAlpha :設置圖像的透明度。 globalAlpha 屬性默認值為 1 ,表示完全不透明,并且可以設置從 0 (完全透明)到 1 (完全不透明)。這個值必須設置在圖形繪制之前
  • globalCompositeOperation :該屬性的值在 globalAlpha 以及所有變換都生效后控制在當前Canvas位圖中繪制圖形

合成圖像的應用示例

在平時的業務中,我們常常能看到刮刮卡這樣的抽獎效果。如果我們使用Canvas來做,就會用到Canvas圖像的合成。

<div id="card"> 
<canvas id="canvasOne" width="500" height="300"></canvas> </div>

我們把獎品(如果是一個圖像)當作 div#card 的背景展示。然后在Canvas中先繪制一個灰色的矩形(源圖像),再通過鼠標事件(或觸摸事件)來動態繪制新圖像(這個就類似筆刷),把 globalCompositeOperation 屬性的值設置為 destination-out (新繪制的圖形和目標canvas中已經存在的圖形內容不重疊的部分的會被保留)。當筆刷擦除大于一定的比例的時候,就刪除 <canvas> 元素或者使用 clearRect() 清除Canvas畫布。從而展示出 div 背景

這篇文章我們主要介紹了Canvas的圖像合成,在Canvas中可以通過兩個屬性globalAlpha和globalCompositeOperation來控制圖像合成操作,實現圖像合成效果。希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

標簽:中山 聊城 金昌 盤錦 阿壩 綏化 萍鄉 赤峰

巨人網絡通訊聲明:本文標題《Canvas globalCompositeOperation》,本文關鍵詞  Canvas,globalCompositeOperation,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Canvas globalCompositeOperation》相關的同類信息!
  • 本頁收集關于Canvas globalCompositeOperation的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 海的味道A∨视频在线观看| 精品国产91久久久久久老师| 欧美同性视频video| 国产伦理女村支书| 欧美6一9性sex娇小HD| 久久久久久久久久久国产一区二区三区| 你的奶好大摸得我好爽| 芊芊的被校长脔日常H| 九九热在线视频免费观看| 飘雪影院免费版在线观看视频| 久久精品麻豆国产天美传媒果冻| 男生鸡鸡插入女生鸡鸡| 好男人WWW社区在线视频夜恋| 初学生疯狂?喷水网站| 老司机午夜在线AV欧美| 1room中文汉化版下载| 军婚H高潮嗯啊娇喘抽搐男男| 国产农村妇女AV二区| 你以后就是我的尿壶| 国产yw855.c免费观看网站| jiizz欧美成熟HD丰满人妻| 高h交换美娇妻系列| 九色丨PORNY丨自拍女神佳星| 人人狠狠综合久久亚洲婷婷| 日本一卡二卡≡卡四卡精品| 乱淫游乐园| yy4480新视觉影院| 二次元裸身??免费视频| 国内精品中文字幕动漫卡通| 国内gary网站| 伊人久久大香线蕉综合75 | 女人被男人躁的女爽免费视频| 国产区一区| 成人免费看片???入口| 97就要鲁就要鲁夜夜爽| 久久婷婷成人综合色| 我的365黑大佬第3季在线免费观看| 久久93精品国产91久久综合| 啊…嗯啊男男高h| 亚洲第一毛片| 亚洲偷窥女厕一区二区|