Examples
Using a preset
/// Presets live inside the $presets array in config/glideinabox.php
$presets = [
'list' => [
'w' => 300,
'h' => 300,
'fit' => 'max',
'fm' => 'jpg'
]
];
The basic image
// Here's the image as defined in the preset
$jpegImage = (string)glide_url('/path/to/your/image.jpg')->preset('list');
Change the encoding
// I want it in WebP for modern times!
$webpImage = (string)glide_url('/path/to/your/image.jpg')->preset('list')->webp();
// Now in PNG
$pngImage = (string)glide_url('/path/to/your/image.jpg')->preset('list')->png();
// Or as a lower quality JPEG
$lowQualityJpegImage = (string)glide_url('/path/to/your/image.jpg')->preset('list')->quality(40);
Manipulate the image
Resize
// A larger WebP
$largerImage = (string)glide_url('/path/to/your/image.jpg')->preset('list')->size(640, 480)->webp();
Brighten
$brighterImage = (string)glide_url('/path/to/your/image.jpg')->preset('list')->bri(75);
Darken
$darkerImage = (string)glide_url('/path/to/your/image.jpg')->preset('list')->bri(-75);
Chain as many manipulations as you want
use AmpedWeb\GlideUrl\Interfaces\Border;
use AmpedWeb\GlideUrl\Interfaces\Crop;
use AmpedWeb\GlideUrl\Interfaces\Filter;
$image = (string)glide_url('/path/to/your/image.jpg')->preset('list')
->cropToPosition(400, 400, Crop::BOTTOM_LEFT)
->sharpen(20)
->brightness(3)
->contrast(20)
->border(2, 'AABBCCDD', Border::OVERLAY)
->filter(Filter::SEPIA)
->webp();
Working without a preset
Basic resized image
$image = glide_url('/path/to/your/image.jpg')->size(300, 300)->fit('max')->jpeg();
Using several manipulations
use AmpedWeb\GlideUrl\Interfaces\Border;
use AmpedWeb\GlideUrl\Interfaces\Crop;
use AmpedWeb\GlideUrl\Interfaces\Filter;
$image = (string)glide_url('/path/to/your/image.jpg')->cropToPosition(400, 400, Crop::BOTTOM_LEFT)
->sharpen(20)
->brightness(3)
->contrast(20)
->border(2, 'AABBCCDD', Border::OVERLAY)
->filter(Filter::SEPIA)
->webp();
In Blade Templates
The basic image
Change the encoding
What happened to the url()
method? Can I still use it?
As of version 0.4.0, FluentUrlBuilder has been made “stringable” by implementing __toString()
. What this means is that you can cast to (string)
or print
an instance instead of needing to call url()
.
Why? Why have you done this?!
It has always felt clunky to have to call url()
to get the URL - a pain point in an otherwise pleasant experience. As the primary purpose of this package is to provide a pleasant interface over Glide, we thought that this needed to be improved.
Does this break backwards compatibility?
No. The url()
method is still available.
So don’t worry - you don’t need to change any of your existing code (unless you want to).