gpt4 book ai didi

arrays - 哪个 haskell 库可以让我将 2D 数组/向量保存到 png/jpg/gif... 文件中?

转载 作者:行者123 更新时间:2023-12-03 20:33:12 24 4
gpt4 key购买 nike

我正在玩haskell,从简单的绘图程序开始弄湿我的脚。我需要一个库,可以让我将二维数组/向量保存到图像文件中。我不想写颜色列表。我想使用用于数组/向量之类的计算并且可以(嗯,几乎)自动并行化的容器。

编辑 存储彩色图像的能力是必须的。

最佳答案

我将从 PGM 开始图书馆。这是一种非常简单的未压缩灰度图格式。几乎没有额外的依赖。您可以使用 ImageMagick 或其他工具将 PGM 转换为其他格式。

PGM 支持通用 IArray接口(interface),并且应该与大多数标准 Haskell 数组一起使用。您可以使用 Control.Parallel.Strategies 轻松并行化数组计算.

PGM 使用示例:

ghci> :m + Data.Array Graphics.Pgm 
ghci> let a = accumArray (+) 0 ((0::Int,0::Int),(127,127)) [ ((i,i), 1.0::Double) | i <- [0..127] ]
ghci> arrayToFile "t.pgm" (fmap round a)

这是图像:

t.pgm

否则你可以使用 Codec-Image-DevIL它可以将未装箱的数组保存为许多图像格式。您需要 DevIL图书馆也是。您需要将所有数组转换为它们的特定类型( UArray (Int, Int, Int) Word8 )。

最后,如果你想要最前沿,你可以考虑 repa并行数组和相应的 repa-io库,可以写它们 to BMP images .不幸的是,今天 repa尚不能使用新的 GHC 7.0.2 构建,并且不会在旧 GHC 6.12 上提供性能优势。

关于arrays - 哪个 haskell 库可以让我将 2D 数组/向量保存到 png/jpg/gif... 文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5191329/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com