@hackage binary-file0.12.6
read/write binary file
Categories
License
BSD-3-Clause
Maintainer
Yoshikuni Jujo <PAF01143@nifty.ne.jp>
Links
Versions
Installation
Dependencies (4)
- base >3 && <5
- bytestring
- peggy
- template-haskell Show all…
Dependents (3)
@hackage/markdown2svg, @hackage/png-file, @hackage/acme-everything
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
|]