binary-file: read/write binary file
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 = do
(b, rest) <- fromBinary 1 s
(g, rest') <- fromBinary 1 rest
(r, rest'') <- fromBinary 1 rest' in
return ((b, g, r), snd $ getBytes 1 1 rest'')
toBinary _ (b, g, r) = do
b' <- toBinary 1 b
g' <- toBinary 1 g
r' <- toBinary 1 r
return $ concatBinary [b', g', 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
replicate color_num ()[OPENBRACKET][(Int, Int, Int)][CLOSEBRACKET]: colors
replicate image_size ()[OPENBRACKET]String[CLOSEBRACKET]: image
|]
Modules
- File
- File.Binary
- File.Binary.Instances
- File.Binary.Instances.BigEndian
- File.Binary.Instances.LSB0
- File.Binary.Instances.LittleEndian
- File.Binary.Instances.MSB0
- File.Binary.Instances
- File.Binary
Downloads
- binary-file-0.15.25.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
- No Candidates
| Versions [RSS] | 0.2, 0.3, 0.4, 0.6, 0.12.6, 0.12.8, 0.13.1, 0.13.2, 0.14.1, 0.14.3, 0.15.0, 0.15.9, 0.15.10, 0.15.11, 0.15.13, 0.15.16, 0.15.18, 0.15.22, 0.15.24, 0.15.25 |
|---|---|
| Dependencies | base (>3 && <5), bytestring, monads-tf, peggy, template-haskell [details] |
| License | BSD-3-Clause |
| Author | Yoshikuni Jujo <PAF01143@nifty.ne.jp> |
| Maintainer | Yoshikuni Jujo <PAF01143@nifty.ne.jp> |
| Category | File |
| Home page | https://skami.iocikun.jp/haskell/packages/binary-file |
| Source repo | head: git clone git://github.com/YoshikuniJujo/binary-file.git this: git clone git://github.com/YoshikuniJujo/binary-file.git(tag 0.15.24) |
| Uploaded | by YoshikuniJujo at 2015-12-19T08:37:00Z |
| Distributions | |
| Reverse Dependencies | 2 direct, 0 indirect [details] |
| Downloads | 16116 total (14 in the last 30 days) |
| Rating | (no votes yet) [estimated by Bayesian average] |
| Your Rating | |
| Status | Docs not available [build log] All reported builds failed as of 2016-10-27 [all 4 reports] |