eikon alternatives and similar packages
Based on the "Images" category.
Alternatively, view eikon alternatives based on common mentions on social networks and blogs.
-
ex_image_info
ExImageInfo is an Elixir library to parse images (binaries) and get the dimensions (size), detected mime-type and overall validity for a set of image formats. It is the fastest and supports multiple formats. -
png
A pure Erlang library for creating PNG images. It can currently create 8 and 16 bit RGB, RGB with alpha, indexed, grayscale and grayscale with alpha images. -
gi
Gi is a library for manipulating Graphics Interfacing. Use utility mogrify, identify, ... of GraphicsMagick to resize, draw on base images....
InfluxDB - Purpose built for real-time analytics at any scale.
Do you think we are missing an alternative of eikon or a related project?
Popular Comparisons
README
Eikōn
Eikōn is an image file parser. Feed it a PNG, JPG, and it will return informations about it.
Table of Contents
Installation
def deps do
[{:eikon, "~> 0.0.2"}]
end
Usage
Each file format is supported through a parser, for instance Eikon.PNG.Parser
which contains the functions to work with it.
For the moment, the following formats are supported :
- [x] PNG
- [x] GIF (Although
content/1
could be improved) - [ ] JPEG
The Parser
Behaviour
Every parser implements the [Parser](lib/eikon.ex#L11) behaviour, which contains standard functions:
General Parsing
parse/1
parse!/1
Magic number checking
magic?/1
Metadata extraction
infos/1
Returning the content of the image (without the metadata)
content/1
content!/1
Examples
Parsing a binary
Erlang/OTP 18 [erts-7.3] [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false]
Interactive Elixir (1.2.5) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> alias Eikon.PNG.Parser
nil
iex(2)⋅❯ File.read!("priv/mandelbrot.png") |> Parser.parse
{:ok,
%Eikon.PNG{bit_depth: 8,
chunks: {:ok,
<<0, 0, 0, 3, 115, 66, 73, 84, 8, 8, 8, 219, 225, 79, 224, 0, 0, 32, 0, 73, 68, 65, 84, 120, 94, 237, 217, 235, 113, 228, 56, 150, 6, 208, 204, 117, 137, 52, 65, 46, 148, 13, 116, 161, 77, 40, ...>>},
color_type: 2, compression: 0, filter: 0, height: 747, interlace: 0,
width: 1365}}
Only return the metadata
iex(3)⋅❯ File.read!("priv/mandelbrot.png") |> Parser.infos
%Eikon.PNG{bit_depth: 8, chunks: nil, color_type: 2, compression: 0, filter: 0, height: 747, interlace: 0, width: 1365}
Extract some particular metadata
iex(4)⋅❯ image = (File.read!("priv/mandelbrot.png") |> Parser.infos)
%Eikon.PNG{bit_depth: 8, chunks: nil, color_type: 2, compression: 0, filter: 0,
height: 747, interlace: 0, width: 1365}
iex(5)⋅❯ image.width
1365
Works also with GIFs
iex(6)⋅❯ alias Eikon.GIF.Parser
nil
iex(7)⋅❯ File.read!("priv/hammer_time.gif") |> Parser.infos
%Eikon.GIF{height: 540, images: nil, version: "89a", width: 960}
When you just want to know if it's a valid file.
iex(8)⋅❯ File.read!("priv/hammer_time.gif") |> Parser.magic?
true
*Note that all licence references and agreements mentioned in the eikon README section above
are relevant to that project's source code only.