daneren2005 / fasterimage
FasterImage finds the size or type of a set of images given their uris by fetching as little as needed, in parallel. Originally ported by Tom Moor.
v1.2.2
2019-02-16 01:09 UTC
Requires
- php: >=5.4.0
- willwashburn/stream: >=1.0
Requires (Dev)
- mockery/mockery: ~0.9
- phpunit/phpunit: ~4.0
README
FasterImage finds the dimensions or filetype of a remote image file given its uri by fetching as little as needed, based on the excellent Ruby implementation by Stephen Sykes and PHP implementation by Tom Moor.
FasterImage uses the curl_muli* suite to run requests in parallel. Currently supports JPG, GIF, PNG, WEBP, BMP, PSD, TIFF, and ICO files.
Usage
$client = new \FasterImage\FasterImage(); $images = $client->batch([ 'http://wwww.example.com/image1.jpg', 'http://wwww.example.com/image2.gif', 'http://wwww.example.com/image3.png', 'http://wwww.example.com/image4.bmp', 'http://wwww.example.com/image5.tiff', 'http://wwww.example.com/image6.psd', 'http://wwww.example.com/image7.webp', 'http://wwww.example.com/image8.ico', 'http://wwww.example.com/image9.cur' ]); foreach ($images as $image) { list($width,$height) = $image['size']; }
Install
composer require fasterimage/fasterimage
Alternatively, add "fasterimage/fasterimage": "~1.2"
to your composer.json
Changelog
- v1.2.0 - Add option to include content-length in result set
- v1.1.2 - Update Accept header to accept images
- v1.1.1 - Properly handle jpeg's with corrupted Exif tags
- v1.1.0 - Return message in return array when curl fails
- v1.0.3 - Use external stream package
- v1.0.2 - Fail invalid image exceptions gracefully when using batch requests
- v1.0.1 - Support PHP v5.4+
- v1.0.0 - Stable Release - Support for
.PSD
,.ICO
+.CUR
- v0.0.7 - Remove support for PHP v5.4
- v0.0.6 - Add option to set timeout of requests, support for EXIF in .jpgs, better support for .bmp (including negative height bitmaps) and normalized response indexes for all file types
- v0.0.5 - Support for
.webp
- v0.0.4 - Support for
.tiff
and exceptions for unknown file types - v0.0.3 - Force curl to follow redirects so you get less bad responses
- v0.0.2 - Update curl headers to mimic browser so you get less bad responses
- v0.0.1 - Support for
.jpg
,.bmp
,.gif
,.png
and parallel requests
References
- https://github.com/sdsykes/fastimage
- https://github.com/tommoor/fastimage
- http://pennysmalls.com/find-jpeg-dimensions-fast-in-pure-ruby-no-ima
- http://snippets.dzone.com/posts/show/805
- http://www.anttikupila.com/flash/getting-jpg-dimensions-with-as3-without-loading-the-entire-file/
- http://imagesize.rubyforge.org/