RosettaCodeData/Task/Grayscale-image/Oz/grayscale-image.oz
2023-07-01 13:44:08 -04:00

27 lines
440 B
Text

functor
import
Array2D
export
ToGraymap
FromGraymap
define
fun {ToGraymap bitmap(Arr)}
graymap({Array2D.map Arr Luminance})
end
fun {Luminance Color}
F = {Record.map Color Int.toFloat}
in
0.2126*F.1 + 0.7152*F.2 + 0.0722*F.3
end
fun {FromGraymap graymap(Arr)}
bitmap({Array2D.map Arr ToColor})
end
fun {ToColor Lum}
L = {Float.toInt Lum}
in
color(L L L)
end
end