Haskell - 如何将地图绘制到逐个像素地访问缓冲区的文件

时间:2014-10-04 14:28:45

标签: haskell graphics drawing 2d

我正在寻找一种创建图像的简单方法,可以设置单个像素的颜色,然后将此图像保存为png。

我的目标特别是根据内容生成的世界绘制地图。我想要使​​用的算法要求我能够独立设置每个像素,希望每次设置像素时都不必复制整个图像。

使用Haskell以这种方式操作图像的最佳方式是什么(如#34;最惯用的")?它是正确的工具还是我应该使用C库呢?

注意:虽然我以某种方式阅读相关的问题,他们专注于更复杂的框架来创建整个游戏,这不是我的目标,我宁愿使用轻量级的东西

1 个答案:

答案 0 :(得分:0)

经过几个小时后,我发现这种方式可以绘制图像并将其另存为PNG

import Codec.Picture

generateMap :: Image PixelRGB8
generateMap = generateImage f 512 512
              where f x y = PixelRGB8 0 0 0

main = do putStrLn "Start"
          let img = generateMap
          savePngImage "ciao.png" (ImageRGB8 img)
          putStrLn "Done"

在生成整个图像后不允许单独设置单个像素,但它足够接近我。希望它有所帮助!