Copyright | (c) 2018 Pavol Klacansky |
---|---|
License | PublicDomain |
Maintainer | pavol@klacansky.com |
Stability | experimental |
Portability | portable |
Safe Haskell | None |
Language | Haskell2010 |
Library for writting OpenEXR images which support high dynamic range. These images are common in computer graphics, especially ray tracing, and can be used to delay quantization to the post-processing stage.
An example of writting 1x1 ZIP compressed image consisting of a 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
Synopsis
- data Image = ImageRGBF {
- imageWidth :: !Int
- imageHeight :: !Int
- imageData :: Vector PixelRGBF
- data PixelRGBF = PixelRGBF !Float !Float !Float
- data CompressionType
- writeFile :: FilePath -> Image -> CompressionType -> IO ()
Documentation
ImageRGBF | |
|
Instances
Show Image Source # | |
Generic Image Source # | |
NFData Image Source # | |
Defined in Graphics.OpenEXR | |
type Rep Image Source # | |
Defined in Graphics.OpenEXR type Rep Image = D1 (MetaData "Image" "Graphics.OpenEXR" "openexr-write-0.1.0.2-Gt37UWOJnEdAX4kM2c9u1N" False) (C1 (MetaCons "ImageRGBF" PrefixI True) (S1 (MetaSel (Just "imageWidth") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Int) :*: (S1 (MetaSel (Just "imageHeight") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Int) :*: S1 (MetaSel (Just "imageData") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Vector PixelRGBF))))) |
Instances
Show PixelRGBF Source # | |
Generic PixelRGBF Source # | |
NFData PixelRGBF Source # | |
Defined in Graphics.OpenEXR | |
type Rep PixelRGBF Source # | |
Defined in Graphics.OpenEXR type Rep PixelRGBF = D1 (MetaData "PixelRGBF" "Graphics.OpenEXR" "openexr-write-0.1.0.2-Gt37UWOJnEdAX4kM2c9u1N" False) (C1 (MetaCons "PixelRGBF" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Float) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Float) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Float)))) |
data CompressionType Source #
NoCompression | No compression applied |
ZipsCompression | DEFLATE lossless compression applied per scanline |
ZipCompression | DEFLATE lossless compression applied per 16 scanlines |
Instances
Enum CompressionType Source # | |
Defined in Graphics.OpenEXR succ :: CompressionType -> CompressionType # pred :: CompressionType -> CompressionType # toEnum :: Int -> CompressionType # fromEnum :: CompressionType -> Int # enumFrom :: CompressionType -> [CompressionType] # enumFromThen :: CompressionType -> CompressionType -> [CompressionType] # enumFromTo :: CompressionType -> CompressionType -> [CompressionType] # enumFromThenTo :: CompressionType -> CompressionType -> CompressionType -> [CompressionType] # | |
Binary CompressionType Source # | |
Defined in Graphics.OpenEXR |
writeFile :: FilePath -> Image -> CompressionType -> IO () Source #
Write an Image
using a CompressionType
to an OpenEXR formatted file