我正在编写一个生成图像的程序,希望将其导入到Repa数组中。我目前使用的类型是:
data Colour = Colour Double Double Double
表示像素,我有一个(可能效率不高但功能正常)的函数,可以将Color
转换为DIM1
数组:
colourToRepa :: Colour -> Array U DIM1 Double
colourToRepa (Colour r g b) = R.fromListUnboxed (Z :. (3::Int)) [r,g,b]
目前,我的程序中的图像只是一个[颜色]
值和一个代表尺寸的(Int, Int)
。
我可以使用这些内容轻松构建一个Array V DIM2 颜色
,但是否有一种方法(使用colourToRepa
或其他方式),可以将此数组扩展为Array U DIM3 Double
?
对于列表,我可以使用map
,但Repa的映射会保留数组的形状(我想从DIM2
转换到DIM3
)。