arjanwestdorp / imaginary-client
A client for the imaginary image service
Installs: 13 365
Dependents: 1
Suggesters: 0
Security: 0
Stars: 1
Watchers: 3
Forks: 0
Open Issues: 0
Requires
- php: >=5.6.0
Requires (Dev)
- phpunit/phpunit: ^5.7.0
This package is auto-updated.
Last update: 2024-11-05 20:41:58 UTC
README
Client for the imaginary image service. Imaginary is a service build to resize images on the fly. Unfortunately that service is not open sourced yet.
Installation
The recommended way to install the client is through composer:
composer require arjanwestdorp/imaginary-client
Usage
$client = new Client([ 'client' => 'CLIENT', 'url' => 'https://imaginaryurl.com', ]); $client->fetch('http://www.test.com/test.jpg')->url(); // https://imaginaryurl.com/CLIENT/image/fetch/http://www.test.com/test.jpg $client->fetch('http://www.test.com/test.jpg') ->width(100) ->height(100) ->url(); // https://imaginaryurl.com/CLIENT/image/fetch/w_100,h_100/http://www.test.com/test.jpg
Predefined definitions
You can add predefined sets of manipulations. The idea is that you can reuse the same manipulation multiple times in your whole application by defining it only once.
$client->define('landscape', function($imaginary){
$imaginary->width(400)
->height(300)
->fit();
});
$client->fetch('http://www.test.com/test.jpg')
->landscape()
->url();
// https://imaginaryurl.com/CLIENT/image/fetch/w_400,h_300,c_fit/http://www.test.com/test.jpg
Options
width($width)
Manipulate the width of the image in pixels.
height($height)
Manipulate the height of the image in pixels.
fit($gravity = null)
Fit the resizing in the given dimensions (width, height). By setting the gravity you can mark the position which the cutout will be taken from. By default it will cutout from the center. Options are:
- top-left
- top
- top-right
- left
- right
- center (default)
- bottom-left
- bottom
- bottom-right
circle($radius = 'max')
Make a circle image. Setting no radius, it will use the size of the image and make it a circle. By setting a radius the image will be resized to match that radius. If the image is bigger then the radius it will automatically use the fit('center')
manipulation before making a circle.
The circle manipulation will be called after the resizing manipulations like width and height, so you can resize the image to your needs before applying the circle.
Security
If you discover any security issues, please email arjanwestdorp@gmail.com instead of creating an issue.
Credits
License
The MIT License (MIT). Please see License File for more information.