2

我是这个库的新手,我想要一种操作(例如)Pixel RGB Double 的方法,例如:

p <- <RGB:(1.0e-2|9.80392156862745e-4|9.900990099009901e-3)>

我知道减法或求和会影响整个 RGB

pixel p = p + 1
<RGB:(1.01|1.0009803921568627|1.00990099009901)>

有没有办法单独操作红色、蓝色或绿色部分而不是同时操作三种颜色?

4

1 回答 1

2

对于RGB,数据声明如下所示:

data instance Pixel RGB a = PixelRGB a a a

这三个字段分别是红色、绿色和蓝色字段。所以你可以做所有常见的 Haskell-y 事情,比如模式匹配和重构。例如:

redder (PixelRGB r g b) = PixelRGB ((r+1)/2) g b

此数据系列的其他实例的数据声明显示在主文档页面的顶部。

于 2021-02-03T19:05:07.390 回答