binary-file-0.15.10: binary-file.cabal
build-type: Simple
cabal-version: >= 1.8
name: binary-file
version: 0.15.10
stability: experimental
author: Yoshikuni Jujo <PAF01143@nifty.ne.jp>
maintainer: Yoshikuni Jujo <PAF01143@nifty.ne.jp>
homepage: https://skami.iocikun.jp/haskell/packages/binary-file
license: BSD3
license-file: LICENSE
category: File
synopsis: read/write binary file
description:
See example directory's sample code.
.
> runghc -XQuasiQuotes -XTypeFamilies -XFlexibleInstances exam.hs some.bmp
.
exam.hs:
.
> import File.Binary
> import File.Binary.Instances
> import File.Binary.Instances.LittleEndian
> import System.Environment
> import Data.ByteString.Lazy as BSL
>
> main = do
> [inf] <- getArgs
> cnt <- BS.readFile inf
> let Right (bmp, rest) = fromBinary () cnt :: (Bitmap, String)
> print bmp
>
> instance Field (Int, Int, Int) where
> type FieldArgument (Int, Int, Int) = ()
> fromBinary _ s = let
> (b, rest) = toType 1 s
> (g, rest') = toType 1 rest
> (r, rest'') = toType 1 rest' in
> ((b, g, r), snd $ getBytes 1 1 rest'')
> toBinary _ (b, g, r) = concatBinary [
> fromType 1 b, fromType 1 g, fromType 1 r,
> makeBinary $ BSL.singleton 0]
>
> [binary|
>
> Bitmap
>
> deriving Show
>
> 2: "BM"
> 4: file_size
> 2: 0
> 2: 0
> 4: offset
>
> 4: 40
> 4: width
> 4: height
> 2: 1
> 2: bits_per_pixel
> 4: compression
> 4: image_size
> 4: resolutionH
> 4: resolutionV
> 4: color_num
> 4: important_color_num
> ((), Just color_num)[OPENBRACKET](Int, Int, Int)[CLOSEBRACKET]: colors
> ((), image_size)[OPENBRACKET]String[CLOSEBRACKET]: image
>
> |]
.
extra-source-files:
examples/readPNG.hs,
examples/CRC.hs,
examples/readBitmap.hs,
examples/readHex.hs,
examples/tiny.hs
examples/bits.hs
examples/bitsb.hs
examples/bitslb.hs
source-repository head
type: git
location: git://github.com/YoshikuniJujo/binary-file.git
source-repository this
type: git
location: git://github.com/YoshikuniJujo/binary-file.git
tag: 0.15.10
library
hs-source-dirs: src
exposed-modules:
File.Binary,
File.Binary.Instances
File.Binary.Instances.LittleEndian,
File.Binary.Instances.BigEndian
other-modules:
File.Binary.Classes,
File.Binary.Parse,
File.Binary.Quote
build-depends: base > 3 && < 5, template-haskell, peggy, bytestring,
monads-tf
ghc-options: -Wall