iT邦幫忙

2022 iThome 鐵人賽

DAY 8
0
Modern Web

拾起 Canvas,人人都是大藝術家!系列 第 8

第 8 幅 - 剪裁遮色片,隨心所欲留下「重點部位」

  • 分享至 

  • xImage
  •  

有沒有被標題騙進來~ 每次想到剪裁遮色片腦袋裡就會浮現...嘿嘿嘿!今天就帶大家來認識剪裁遮色片,剪裁遮色片顧名思義就是將某個形狀遮在其他圖片上,看到圖片時只會呈現該形狀中的圖片。相信這個大家都不陌生,也是繪圖軟體非常常使用到的功能唷!

透過合成效果實現剪裁遮色片

以 Canvas 實現剪裁遮色片的話主要可以分為三個步驟,先新增一張喜歡的照片,接著畫上任一個圖形,這裡以圓形為例,最後加上前幾天學的合成效果中的「destination-in」 的特效,即可完成遮色片。只是要注意繪製的順序分別是圖片、合成效果、剪裁圖形。

https://ithelp.ithome.com.tw/upload/images/20220923/201306308bgvaHAjfA.jpg

圖片來源:https://er-animal.jp/pepy/wp-content/uploads/2018/01/051.jpg

function drawMask() {
  let img = new Image();
  img.src = "https://er-animal.jp/pepy/wp-content/uploads/2018/01/051.jpg";
  img.onload = function () {
    // 照片
    ctx.drawImage(img, 0, 0, 600, 400);
    // 合成效果
    ctx.globalCompositeOperation = "difference";
    // 幾何圖形(遮罩)
    ctx.fillStyle = "#FFDADA";
    ctx.arc(320, 200, 100, 0, Math.PI * 2, true);
    ctx.fill();
  };
}

這樣的剪裁遮色片效果其實也運用在很多地方,例如之前 Hot 7 新春優惠線上的刮刮卡就是用剪裁遮色片的概念,只是把圖形改成線條,並監測 Mouse Event 或是 Touch Event 來實現唷!我們之後也來實作看看吧!

更多好玩的效果,讓照片更吸睛

除了剪裁遮色片的效果,我們過去學的合成效果也都可以套用在圖片上面,下面舉幾個特效為例,這些效果很適合用在圖片 hover 行為或是標註圖片重點。覺得最有趣的是 difference,用下去整個變出 負片效果。歡迎感興趣的大家 clone 我的原始碼玩玩看不同的 API 參數唷~

https://ithelp.ithome.com.tw/upload/images/20220923/20130630WqbrEIFW7G.jpg

這就是今天簡單又好玩的教學,一樣附上我的程式碼:૮ฅ・ﻌ・აฅ 點我看看 Codepen


上一篇
第 7 幅 - 加入真實圖片,讓你的 Canvas 更有料
下一篇
第 9 幅 - 藝起寫 Code,拼貼出馬格利特的超現實主義畫作
系列文
拾起 Canvas,人人都是大藝術家!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
Rson Wilson
iT邦新手 4 級 ‧ 2022-09-23 12:36:32

我絕對不會承認我是為了標題進來的

我也絕對不會承認我是看到留言後再次回來確認..

珊迪 iT邦新手 5 級 ‧ 2022-09-23 19:39:21 檢舉

重點部位都看清楚了齁?

報告是!程式的重點部位都看清楚了!

我要留言

立即登入留言