openexr-write: Library to write images in OpenEXR HDR file format.

[ graphics, library ] [ Propose Tags ]

OpenEXR allows to store pixels as floating point numbers and thus can capture high dynamic range.

[Skip to Readme]
Versions [faq],,
Dependencies base (>=4.8 && <5), binary, bytestring, data-binary-ieee754, deepseq, split, vector, vector-split, zlib [details]
License GPL-3.0-only
Copyright 2017 Pavol Klacansky
Author Pavol Klacansky
Category Graphics
Home page
Source repo head: git clone
Uploaded by pavolzetor at 2017-07-02T06:26:54Z
Distributions LTSHaskell:, NixOS:, Stackage:
Downloads 1888 total (6 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs available [build log]
Last success reported on 2017-07-02 [all 1 reports]




Maintainer's Corner

For package maintainers and hackage trustees

Readme for openexr-write-

[back to package description]

Haskell OpenEXR Library

This library can write colored images which use floating point values into OpenEXR (v2) high-dynamic-range file format.

Supported features:

  • scanline format
  • compression (ZIPS, ZIP)
  • pixel format (RGB float32)


Modify project's stack.yaml by adding path to openexr-write package.

- '.'
- path/openexr-write

An image can be written by calling writeFile function. For example, following code stores a compressed image consisting of one red pixel.

module Main where

import qualified Data.Vector      as V
import qualified Graphics.OpenEXR as EXR

main :: IO ()
main = do
        let image = EXR.ImageRGBF 1 1 (V.fromList [EXR.PixelRGBF 1.0 0.0 0.0])
        EXR.writeFile "image.exr" image EXR.ZipCompression