A Laravel package for the popular image optimization web service reSmush.it
Install via composer
composer require golchha21/resmushitphp artisan vendor:publish --provider Golchha21\ReSmushIt\Providers\ServiceProvider --tag=config// config/ReSmushIt.php
return [
// Keep a copy of the original image
'original' => true,
// Image quality (0–100)
'quality' => 92,
// Supported mime types
'mime' => [
'image/png',
'image/jpeg',
'image/gif',
'image/bmp',
'image/tiff',
],
// Custom User-Agent for API requests
'useragent' => 'ReSmushIt v1.3.4',
// Preserve EXIF metadata
'exif' => false,
// Maximum allowed file size in bytes (e.g. 5 MB)
'max_filesize' => 5242880,
];$file = public_path('images/news1.jpg');
$files = [
public_path('images/news1.jpg'),
public_path('images/news2.jpg'),
public_path('images/news3.jpg'),
public_path('images/news4.jpg'),
];
$resmushit = new ReSmushIt();
$result = $resmushit->path($file);
$results = $resmushit->paths($files);$file = public_path('images/news1.jpg');
$files = [
public_path('images/news1.jpg'),
public_path('images/news2.jpg'),
public_path('images/news3.jpg'),
public_path('images/news4.jpg'),
];
Optimize::path($file);
Optimize::paths($files);If the reSmush.it API is unreachable, times out, or returns an invalid response, the optimizer will return a structured error array instead of triggering a fatal error.
$result = Optimize::path($file);
if (isset($result['error'])) {
// Handle the error (log it, retry, notify user, etc.)
}Both path() and paths() always return arrays.
- On success, the response contains optimization details returned by the reSmush.it API.
- On failure, the response contains an
errorkey describing the issue, along with additional context when available.
This applies to both single and batch optimization.
Please see CHANGELOG for more information on what has changed recently.
For common issues and environment-specific fixes, see Troubleshoot. If you discover any security-related issues, please email vardhans@ulhas.net instead of using the issue tracker.
- Ulhas Vardhan Golchha -- Initial work
See also the list of contributors who participated in this project.
reSmushit for Laravel is open-sourced software licensed under the MIT license.