binary-file-0.12.6: binary-file.cabal
build-type: Simple
cabal-version: >= 1.8
name: binary-file
version: 0.12.6
stability: experimental
author: Yoshikuni Jujo <PAF01143@nifty.ne.jp>
maintainer: Yoshikuni Jujo <PAF01143@nifty.ne.jp>
license: BSD3
license-file: LICENSE
category: File
synopsis: read/write binary file
description:
> runghc -XQuasiQuotes exam.hs some.bmp out.bmp
.
exam.hs:
.
> import File.Binary
> import File.Binary.Data.LittleEndian
> import System.Environment
> import Data.ByteString as BS
>
> main = do
> [inf, outf] <- getArgs
>
> cnt <- BS.readFile inf
> let bmp = readBitmap $ cnt `BS.append` replicate 20 ' '
> print bmp
>
> let out = writeBitmap bmp {
> authorFirst = "Yoshikuni ",
> authorSecond = "Jujo "
> }
> BS.writeFile outf out
>
> instance RetType (Int, Int, Int) where
> type Argument (Int, Int, Int) = ()
> fromType _ (b, g, r) = cc $ [
> fromType 1 b, fromType 1 g, fromType 1 r, zero]
> toType _ str = let
> (b, rest) = toType 1 str
> (g, rest') = toType 1 rest
> (r, rest'') = toType 1 rest' in
> ((b, g, r), dp 1 rest'')
>
> [binary|
>
> Bitmap
>
> 2: "BM"
> 4: fileSize
> 2: 0
> 2: 0
> 4: offset
>
> 4: 40
> 4: bitmapWidth
> 4: bitmapHeight
> 2: 1
> 2: bitsPerPixel
> 4: compressionMethod
> 4: imageSize
> 4: horizontalResolution
> 4: verticalResolution
> 4: numberOfColors
> 4: importantColors
> ((), Just numberOfColors)<[(Int, Int, Int)]>: colors
> imageSize<BS.ByteString>: image
>
> 10<String>: authorFirst
> 10<String>: authorSecond
>
> |]
.
source-repository head
type: git
location: git://github.com/YoshikuniJujo/binary-file.git
library
hs-source-dirs: src
exposed-modules: File.Binary,
File.Binary.Data.LittleEndian,
File.Binary.Data.BigEndian
other-modules: QuoteBinaryStructure, ParseBinaryStructure, Here, Classes
build-depends: base > 3 && < 5, template-haskell, peggy, bytestring
ghc-options: -Wall