iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 13
0
自我挑戰組

學習 canvas 日記系列 第 13

第 13 天 文字樣式二

  • 分享至 

  • xImage
  •  

把圖片當材質填滿作為範圍的文字效果
或也可以說是 圖片和文字 做像下圖裁切的效果
https://ithelp.ithome.com.tw/upload/images/20181026/20107496hCgliVNnnn.jpg
可以利用 globalCompositeOperation
這類似 illustrations 的路徑管理員
https://ithelp.ithome.com.tw/upload/images/20181026/201074962cYcNCv5LW.jpg
而 canvas 能做到的裁切樣式又更多一些
目前看到最多有26種

參考資料:
MDN 合成效果
Canvas学习:图像合成

要做第一張圖的效果需要用到 "destination-in"
這會把兩個圖像交集的部分留下其他透明化
就像下圖重疊的部分會留下
https://ithelp.ithome.com.tw/upload/images/20181026/20107496GvBaFXJZ4F.jpg
留下的填滿顏色會是第一張圖的顏色
流程是先建立從外部載入圖 → 裁切工具 → 圖形

var cvs = document.getElementById("canvas"),
    ctx = cvs.getContext("2d"),
    img = new Image(),
    text = "TextText";

img.src='img.jpg';
img.onload=function(){
    ctx.drawImage(img,0,0);
    ctx.globalCompositeOperation="destination-in";
    ctx.font = '700 120px Montserrat'; 
    ctx.strokeStyle = 'red';  // 在裁切前確定文字位置用,裁切後就沒作用了可以刪除
    ctx.lineWidth = 10;
    ctx.strokeText(text, 0, 120); 
    ctx.stroke();
}

上一篇
第 12 天 文字樣式一
下一篇
第 14 天 文字繞圓
系列文
學習 canvas 日記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言