Haskell-如何绘制一个映射到一个逐像素访问缓冲区的文件

Haskell-如何绘制一个映射到一个逐像素访问缓冲区的文件,haskell,graphics,drawing,2d,Haskell,Graphics,Drawing,2d,我正在寻找一种简单的方法来创建一个图像,有可能设置单个像素的颜色,然后将此图像保存为png 我的目标尤其是根据内容生成的世界绘制地图。我想使用的算法要求我能够独立设置每个像素,希望每次设置像素时不必复制整个图像 使用Haskell以这种方式操作图像的最佳方式(如“最惯用的”)是什么?这是正确的工具,还是应该使用C库来实现 注意:当我阅读一些相关的问题时,他们关注的是更复杂的框架来创建整个游戏,这不是我的目标,我宁愿使用一些轻量级的在其他几个小时后,我找到了这种方法来绘制图像并将其保存为PNG i

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

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

使用Haskell以这种方式操作图像的最佳方式(如“最惯用的”)是什么?这是正确的工具,还是应该使用C库来实现


注意:当我阅读一些相关的问题时,他们关注的是更复杂的框架来创建整个游戏,这不是我的目标,我宁愿使用一些轻量级的在其他几个小时后,我找到了这种方法来绘制图像并将其保存为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"

它不允许在生成整个图像后单独设置一个像素,但对我来说已经足够近了。希望有帮助

你的问题似乎与主题无关。因此,有关软件/库建议的问题是离题的。即使你不是在问图书馆,“如何创建图像?”这个问题也肯定会被认为过于宽泛。考虑这个问题(仔细阅读帮助中心,然后打开一个问题)或试图缩小你的问题的话题。谢谢Bakuriu,我修改了我的问题,试图解决你的建议。