Skip to content

Find the file size or file type of an image given the file path or uri respectively in elixir.

License

Notifications You must be signed in to change notification settings

tmattio/fastimage

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

62 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Fastimage Hex Version Hex docs License Build Status Code coverage status

Description

Fastimage finds the dimensions/size or file type of a remote or local image file given the file path or url respectively. It streams the smallest amount of data necessary to ascertain the file size. This aspect is useful when getting the file size for very large images.

Features

  • Supports bmp, jpeg, png and gif files
  • Supports local files by using the file path of the image
  • Supports blobs/objects by using the binary of the image
  • Supports remote files by using the url of the image
  • Follows redirects for a given url
  • Fastimage.info/1 yields the image info as a struct %Fastimage{}
  • Fastimage.size/1 yields the image size as a struct %Fastimage.Dimensions{width: _w, height: _h}
  • Fastimage.type/1 yields the image type as an atom :bmp, :jpeg, :gif or :png

Examples

Fastimage.info("https://raw.githubusercontent.com/stephenmoloney/fastimage/master/priv/test.jpg")
# => {:ok,
#      %Fastimage{
#        dimensions: %Fastimage.Dimensions{height: 142, width: 283},
#        image_type: :jpeg,
#        source: "https://raw.githubusercontent.com/stephenmoloney/fastimage/master/priv/test.jpg",
#        source_type: :url
#      }}

Fastimage.info!("https://raw.githubusercontent.com/stephenmoloney/fastimage/master/priv/test.jpg")
# => %Fastimage{
#       dimensions: %Fastimage.Dimensions{height: 142, width: 283},
#       image_type: :jpeg,
#       source: "https://raw.githubusercontent.com/stephenmoloney/fastimage/master/priv/test.jpg",
#       source_type: :url
#     }

Fastimage.type("https://raw.githubusercontent.com/stephenmoloney/fastimage/master/priv/test.jpg")
# => {:ok, :jpeg}

Fastimage.type!("https://raw.githubusercontent.com/stephenmoloney/fastimage/master/priv/test.jpg")
# => :jpeg

Fastimage.size("https://raw.githubusercontent.com/stephenmoloney/fastimage/master/priv/test.jpg")
# => {:ok, %Fastimage.Dimensions{height: 142, width: 283}}

Fastimage.size!("https://raw.githubusercontent.com/stephenmoloney/fastimage/master/priv/test.jpg")
# => %Fastimage.Dimensions{height: 142, width: 283}

Installation

Add fastimage to your list of dependencies in mix.exs:

def deps do
  [
    {:fastimage, "~> 1.0.0-rc2"}
  ]
end

Tests

mix test

Credit/Acknowledgements

Licence

MIT Licence

About

Find the file size or file type of an image given the file path or uri respectively in elixir.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Elixir 100.0%