Packages

A library for reading Exif data in JPEG files.

Current section

Files

Jump to
glexif src glexif.erl
Raw

src/glexif.erl

-module(glexif).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-export([get_exif_data_for_file/1]).
-spec get_exif_data_for_file(binary()) -> glexif@exif_tag:exif_tag_record().
get_exif_data_for_file(File_path) ->
_assert_subject = file_streams@file_stream:open_read(File_path),
{ok, Rs} = case _assert_subject of
{ok, _} -> _assert_subject;
_assert_fail ->
erlang:error(#{gleam_error => let_assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _assert_fail,
module => <<"glexif"/utf8>>,
function => <<"get_exif_data_for_file"/utf8>>,
line => 6})
end,
_ = glexif@internal@raw:read_until_marker(Rs),
Size = glexif@internal@raw:read_exif_size(Rs),
_ = file_streams@file_stream:close(Rs),
case glexif@internal@raw:read_exif_segment(Rs, Size) of
{ok, Segment} ->
glexif@internal@raw:parse_exif_data_as_record(Segment);
_ ->
erlang:error(#{gleam_error => panic,
message => <<"panic expression evaluated"/utf8>>,
module => <<"glexif"/utf8>>,
function => <<"get_exif_data_for_file"/utf8>>,
line => 19})
end.