27 lines
440 B
Text
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
|