2016-09-20 4 views
5

Я использую Haskell-Chart в соответствии с примером eample-1. Haskell-Chart генерирует содержимое в файлСоздание байтовой строки в Haskell-диаграмме

toFile def "example1_big.png" $ do 
... 

Можно ли генерировать содержимое диаграммы в байтовой строки вместо файла? Я не могу найти решение в документации.

ответ

6

К сожалению, это невозможно напрямую. toFile вызывает функции в библиотеке cairo, например withPDFSurface, withSVGSurface, которые сами призывают к C-библиотеке cairo и принимают только имена файлов.

Вы всегда можете написать временный файл и прочитать содержимое обратно в так:

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 
Смежные вопросы