从UArray转换为StorableArray

时间:2012-02-06 17:57:53

标签: arrays haskell image-processing

我正在使用JuicyPixels在磁盘上加载PNG,我需要一个指向原始像素数据的指针。它作为UArray存储在JuicyPixels中。我怎么得到指针?它是否像StorableArray一样简单?如果是这样,怎么样?

1 个答案:

答案 0 :(得分:4)

您可以在IO中使用thaw

do storableArray <- thaw uArray
   ...

这会复制整个数组,但可能比手写代码更有效地执行相同操作。如果您知道您不会再次访问UArray,那么您可以使用unsafeThaw,但是对于当前的库实现,它仍然可能会导致完整的副本。 (其文档中列出了具有unsafeThaw非复制实现的数组类型。)

可能有一种不可移植的方式来获取UArray下的原始指针,但我在GHC.Exts中找不到。