是否有將 rgb 顏色直接轉換為真正的灰度形式的功能?
function rgbToGrayscale(red, green, blue) {
const gray = []
/* ---- CONVERSION CODE ---- */
return gray
}
// color
const rgb = [20, 150, 240]
// grayscale conversion
const gray = rgbToGrayscale(rgb[0], rgb[1], rgb[2]) // [121, 121, 121]
如果有人能找到這個問題的簡單答案,我將不勝感激。
uj5u.com熱心網友回復:
感謝 @Spektre 和 @Teemu ,該功能現在可以作業了。我在@Spektre 的 stackoverflow 鏈接中發現這篇文章也很有用。
如果您想要廉價的灰度顏色轉換,只需將數字相加并除以三:
function rgbToGrayscale(red, green, blue) {
const gray = (red green blue) / 3
return [gray, gray, gray]
}
const gray = rgbToGrayscale(20, 150, 240) // [136.6, 136.6, 136.6]
但是因為我們的眼睛混合了光和顏色,人們發現,對我們來說,藍色比紅色更暗,紅色比綠色更暗。因此,已經創建和改進了多個公式來平衡人眼的顏色。
這是我覺得很好的一個:
function rgbToGrayscale(red, green, blue) {
/* remember: if you multiply a number by a decimal between 0
and 1, it will make the number smaller. That's why we don't
need to divide the result by three - unlike the previous
example - because it's already balanced. */
const r = red * .3 // ------> Red is low
const g = green * .59 // ---> Green is high
const b = blue * .11 // ----> Blue is very low
const gray = r g b
return [gray, gray, gray]
}
const rgb = [20, 150, 240]
const gray = rgbToGrayscale(rgb[0], rgb[1], rgb[2])
console.log(rgb)
console.log(gray)
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/490392.html
標籤:javascript 功能 数学 颜色
下一篇:如何圍繞它的中心旋轉三角形?
