使用Yesod和任何图像转换库流式传输图像

时间:2014-03-22 22:02:01

标签: haskell image-processing streaming yesod

我需要在线处理tiff图像。浏览器不支持Tiff图像。所以我想也许我可以动态转换它们并将它们作为pngs流入浏览器。

我发现很多图像处理haskell库和JuicyPixels看起来很简单,支持从tiff读取并保存到许多其他格式,包括png。

最简单的情况是只保存到png文件,然后使用sendFile

提供

但我认为在此过程中涉及硬盘驱动器会增加太多开销并大大减慢响应速度。所以我的问题是,如何直接将使用JuicyPixels转换的图像从tiff流式传输到png,而不是先将其保存到文件中。

JuicyPixels有没有任何流媒体接口?或者可能有一种简单的方法来获取特定格式的数据表示,然后将其传递给任何流媒体库,如管道?

正如我提出的问题,有人从Yesod那里做过流式传输图像吗?

1 个答案:

答案 0 :(得分:1)

我没有使用JuicyPixels的任何经验,但它似乎编码为懒惰的ByteStrings。如果是这样的话,那么你只需要在DontFullyEvaluate中返回那个懒惰的ByteString。