我是这个库的新手,我想要一种操作(例如)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)>
有没有办法单独操作红色、蓝色或绿色部分而不是同时操作三种颜色?
对于RGB
,数据声明如下所示:
data instance Pixel RGB a = PixelRGB a a a
这三个字段分别是红色、绿色和蓝色字段。所以你可以做所有常见的 Haskell-y 事情,比如模式匹配和重构。例如:
redder (PixelRGB r g b) = PixelRGB ((r+1)/2) g b
此数据系列的其他实例的数据声明显示在主文档页面的顶部。