在Haskell-Chart中生成ByteString

QSp*_*der 6 charts haskell haskell-chart

我根据示例eample-1使用Haskell-Chart .Haskell-Chart生成要归档的内容

toFile def "example1_big.png" $ do
...
Run Code Online (Sandbox Code Playgroud)

是否有可能生成图表内容到ByteString而不是文件?我在文档中找不到解决方案.

Eri*_*ikR 7

不幸的是,这是不可能的直接方式.toFile调用cairo库中的函数withPDFSurface,withSVGSurface它们自己调用cairo C库并只获取文件名.

您始终可以写入临时文件并以这样的方式读取内容:

import System.IO.Temp  -- from the temporary package
import qualified Data.ByteString.Char8 as BS

...
bs <- withSystemTempFile "chart-XXXXXXX" $ \path _ -> do
        toFile def path $ do ...
        BS.readFile path
Run Code Online (Sandbox Code Playgroud)