FormatParser




FormatParser can be used to figure out the type and the format of a file.
It also can extract some additional information.
Documentation can be found here.
Inspired heavily by format_parser.
Basic usage
{:ok, file} = File.read("myimage.gif")
match = FormatParser.parse(file)
match.nature
match.format
match.width_px
match.height_px
{:ok, file} = File.read("myvideo.flv")
match = FormatParser.parse(file)
match.nature
match.format
{:ok, file} = File.read("mydocument.rtf")
match = FormatParser.parse(file)
match.nature
match.format
{:ok, file} = File.read("myaudio.wav")
match = FormatParser.parse(file)
match.nature
match.format
match.sample_rate_hz
match.num_audio_channels
{:ok, file} = File.read("myfont.ttf")
match = FormatParser.parse(file)
match.nature
match.format
Supported Formats
Audio
| Type | Nature | Format | Sample Rate | # of Channels | Intrinsics |
|---|
| aiff | x | x | | x | num_frames, bits_per_sample |
| wav | x | x | x | x | byte_rate, block_align, bits_per_sample |
| ogg | x | x | x | x | |
| flac | x | x | x | x | |
Video
Document
Image
| Type | Nature | Format | Width | Height | Intrinsics |
|---|
| jpg | x | x | | | |
| gif | x | x | x | x | |
| ico | x | x | x | x | num_color_palette, color_planes, bits_per_pixel |
| cur | x | x | x | x | num_color_palette, hotspot_horizontal_coords, hotspot_vertical_coords |
| cr2 | x | x | x | x | |
| nef | x | x | x | x | |
| tif | x | x | x | x | |
| bmp | x | x | x | x | |
| png | x | x | x | x | bit_depth, color_type, compression_method, crc, filter_method, interlace_method |
| psd | x | x | x | x | |
| jb2 | x | x | | | |
| xcf | x | x | | | |
| exr | x | x | | | |
Font
| Type | Nature | Format |
|---|
| ttf | x | x |
| otf | x | x |
| fon | x | x |
Installation
def deps do
[
{:format_parser, "~> 0.12.0"}
]
end
Roadmap
Contribute
Please feel free to fork and send us a PR or open up an issue.