fastimage.cr
fastimage.cr copied to clipboard
A Crystal implementation of fastimage – library that finds the dimensions and type of an image fetching as little as needed
fastimage.cr
Library that finds the dimensions and type of an image fetching as little as needed.
Documentation
https://jetrockets.github.io/fastimage.cr
Installation
-
Add the dependency to your
shard.yml
:dependencies: fastimage: github:jetrockets/fastimage.cr
-
Run
shards install
Usage
require "fastimage"
.type : String|Nil
Returns image type. Returns nil
if image type is not supported.
FastImage.type("https://file-examples.com/wp-content/uploads/2017/10/file_example_PNG_3MB.png")
# => png
.type! : String
Same as #type
, but raise exception if anything goes wrong.
.dimensions : Tuple(UInt16?, UInt16?)|Nil
Returns image width and height as a Tuple(UInt16?, UInt16?)
. Returns nil
if image type is not supported.
FastImage.dimensions("https://file-examples.com/wp-content/uploads/2017/10/file_example_PNG_3MB.png")
# => [2200, 1467]
.dimensions! : Tuple(UInt16?, UInt16?)
Same as #dimensions
, but raise exception if anything goes wrong.
Feature Progress
- [ ] Data sources
- [X] Remote file
- [X] HTTP/HTTPS
- [ ] Proxy
- [ ] HTTP redirects
- [X] Local file
- [X] IO
- [X] Base64
- [X] Remote file
- [ ] File formats
- [X] BMP
- [X] CUR
- [X] GIF
- [X] ICO
- [X] JPEG
- [X] parse EXIF information for JPEG orientation
- [X] PNG
- [X] PSD
- [ ] SVG
- [X] TIFF
- [X] WEBP
Contributing
- Fork it (https://github.com/jetrockets/fastimage.cr/fork)
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request
Contributors
- Igor Alexandrov - creator and maintainer