Description
FormatParser can be used to figure out the type and the format of a file. It also can extract some additional information.
FormatParser alternatives and similar packages
Based on the "Files and Directories" category.
Alternatively, view FormatParser alternatives based on common mentions on social networks and blogs.
-
dir_walker
Simple Elixir file-system directory tree walker. It can handle large filesystems, as the tree is traversed lazily. -
elixgrep
An elixir framework to implement concurrent versions of common unix utilities, grep, find, etc..
WorkOS - The modern identity platform for B2B SaaS
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of FormatParser or a related project?
README
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
# Image
{:ok, file} = File.read("myimage.png")
match = FormatParser.parse(file)
match.nature #=> :image
match.format #=> :gif
match.width_px #=> 256
match.height_px #=> 256
match.intrinsics[:filter_method] #=> 0
# Video
{:ok, file} = File.read("myvideo.flv")
match = FormatParser.parse(file)
match.nature #=> :video
match.format #=> :flv
# Document
{:ok, file} = File.read("mydocument.rtf")
match = FormatParser.parse(file)
match.nature #=> :document
match.format #=> :rtf
# Audio
{:ok, file} = File.read("myaudio.wav")
match = FormatParser.parse(file)
match.nature #=> :audio
match.format #=> :wav
match.sample_rate_hz #=> 44100
match.num_audio_channels #=> 2
# Font
{:ok, file} = File.read("myfont.ttf")
match = FormatParser.parse(file)
match.nature #=> :font
match.format #=> :ttf
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
Type | Nature | Format |
---|---|---|
flv | x | x |
Document
Type | Nature | Format | Intrinsics |
---|---|---|---|
rtf | x | x | |
x | x | page_count |
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 | date_time, model, preview_byte_count, preview_offset |
nef | x | x | x | x | date_time, model, preview_byte_count, preview_offset |
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
Add the following to your mix.exs
file
def deps do
[
{:format_parser, "~> 1.3.0"}
]
end
And run mix deps.get
Contribute
Please feel free to fork and send us a PR or open up an issue.