exiftool-0.1.1.0: README.md
# exiftool-haskell
[](https://hackage.haskell.org/package/exiftool)
[](https://github.com/marhop/exiftool-haskell/actions/workflows/ci.yml)
Haskell bindings to the [ExifTool](https://exiftool.org) command-line
application that enable reading, writing and deleting metadata in various file
formats.
Full documentation is on [Hackage](https://hackage.haskell.org/package/exiftool/docs/ExifTool.html).
A short code example:
```haskell
{-# LANGUAGE OverloadedLists #-}
{-# LANGUAGE OverloadedStrings #-}
import Data.HashMap.Strict ((!?))
import ExifTool
example :: IO ()
example =
withExifTool $ \et -> do
-- Read metadata, with exact (!?) and fuzzy (~~) tag lookup.
m <- getMeta et "a.jpg"
print $ m !? Tag "EXIF" "ExifIFD" "DateTimeOriginal"
print $ m ~~ Tag "EXIF" "" "XResolution"
print $ m ~~ Tag "XMP" "" ""
-- Write and delete metadata.
setMeta et [(Tag "XMP" "XMP-dc" "Description", String "...")] "a.jpg"
deleteMeta et [Tag "XMP" "XMP-dc" "Description"] "a.jpg"
```