iT邦幫忙

2022 iThome 鐵人賽

DAY 18
0
Modern Web

P5.js 學習之路系列 第 18

Day18 - 進階色彩設定 lerpColor()以及 filter

  • 分享至 

  • xImage
  •  

lerpColor()以及 filter都是在繪圖的時候可以做為調色或者增添視覺美感可用的方法,我覺得與blendMode()類似都屬於調整色彩,針對像素去做變化的函數,下面我們就來看看如何使用吧~

lerpColor()

有時候我們會有想取得顏色的中間值的狀況,在設定好兩個配色以後,希望使用兩色之間的配色來進行繪圖,lerpColor()就是混合兩種顏色後,在中間的找到第三種顏色的函數。

可以設定三個參數,前面兩個為顏色,第三個為兩個值顏色值之間插值的量數,可設定0-1之間,0時視為第一個顏色,1視為第二個顏色,0.5為兩色正中間值,以此類推,0.1十分靠近第一種顏色,0.9則類似(但不是)第二種顏色。

lerpColor(color1, color2, 近似值)

function setup() {
	createCanvas(windowWidth, windowHeight);
	background(100);
	stroke(255);
	noLoop();
}

function draw() {
let color1 = color(38,78,112);
let color2 = color(187,212,206);
let lerp1 = lerpColor(color1, color2, 0.3);
let lerp2 = lerpColor(color1, color2, 0.8);
fill(color1);
rect(40, 40, 80, 100);
fill(lerp1);
rect(120, 40, 80, 100);
fill(lerp2);
rect(200, 40, 80, 100);
fill(color2);
rect(280, 40, 80, 100);
}

filter

是CSS屬性的函數,可以用於調整圖像、背景和邊框的渲染,擁有模糊、色相偏移或負片等等圖形效果,也有透過url引用svg的功能

  • filter: blur(5px);
    高斯模糊 與螢幕上多少像素融合,可以輸入css長度,不接受百分比,默認0

  • filter: brightness(0.4);
    明亮 0%全黑,大於100% 更明亮,默認1

  • filter: contrast(200%);
    對比 0%全黑,100% 不變化,超過100%更低對比,默認1

  • filter: drop-shadow(offset-x, offset-y , blur-radius, color);
    陰影 可以設定模糊度,指定顏色,畫出本體的偏移版本
    offset-x : 向量偏移
    offset-y : 向量偏移
    blur-radius : 不能有負值,默認0
    color : 未定義時以瀏覽器預設為主

  • filter: grayscale(50%);
    灰階 100% 為完全灰,0% 無變化,默認0

  • filter: hue-rotate(90deg);
    色相旋轉 0deg 無變化,超過360deg 繞回原點

  • filter: invert(75%);
    反輸入影像 100% 為完全反轉,0% 無變化,默認0

  • filter: opacity(25%);
    透明度 0% 為完全透明,100% 無變化,默認1

  • filter: saturate(30%);
    飽和度 0% 為完全不飽和,100% 無變化,默認1

  • filter: sepia(60%);
    復古化 100% 為完全深褐色,0% 無變化,默認0

小結

進階色彩的部分就講到這邊~,如果大家有其他想分享的部分也歡迎留言給我,謝謝大家~


上一篇
Day17 - 進階色彩設定 blendMode()
下一篇
Day19 - p5.js 中的漸層 - 1
系列文
P5.js 學習之路30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言