我正在使用repa-devil
來讀取和寫入圖像。現在我需要以編程方式創建圖像。但是,Data.Array.Repa.IO.DevIL
中的Image
構造函數(如RGB
)都需要外部內存緩衝區陣列。我必須走出去學習如何使用這些外國指針(聽起來很可怕)嗎?或者我可以將一個拆箱數組轉換爲我需要的類型?創建圖像以使用repa-devil
emptyImage :: RandomGen r => (Int, Int) -> Rand r Image
emptyImage (w,h) = do
xs <- getRandomRs (0, 255)
let ps = take (w*h*3) xs :: [Word8]
let arr = fromListUnboxed (Z :. w :. h :. (3::Int)) ps :: Array U DIM3 Word8
let arr2 = ???how can I convert arr??? :: Array F DIM3 Word8
return $ RGB arr2