grayscaleMethods = {
return {
'naive': {
label: 'Naive (averaging)',
func: (r, g, b) => Math.round(r + g + b) / 3,
},
'luma-common': {
label: 'Luminance (common)',
func: (r, g, b) => r * 0.3 + g * 0.59 + b * 0.11,
},
'BT709': {
label: 'Luminance (ITU-R BT.709; luma)',
func: (r, g, b) => r * 0.2126 + g * 0.7152 + b * 0.0722,
},
'BT601': {
label: 'Luminance (ITU-R BT.601)',
func: (r, g, b) => r * 0.299 + g * 0.587 + b * 0.114,
},
'desat': {
label: 'Desaturation',
func: (r, g, b) => Math.round((Math.max(r, g, b) + Math.min(r, g, b)) / 2),
},
'red': {
label: 'Picking only red channel',
func: (r, g, b) => r,
},
'green': {
label: 'Picking only green channel',
func: (r, g, b) => g,
},
'blue': {
label: 'Picking only blue channel',
func: (r, g, b) => b,
},
}
}