flixtechs-labs / laravel-bytepoint
Bytepoint image optimization API client SDK for laravel
Requires
- php: ^8.1
- guzzlehttp/guzzle: ^7.4
- illuminate/contracts: ^10.0
- spatie/laravel-package-tools: ^1.14.0
Requires (Dev)
- laravel/pint: ^1.0
- nunomaduro/collision: ^7.9
- nunomaduro/larastan: ^2.0.1
- orchestra/testbench: ^8.0
- pestphp/pest: ^2.0
- pestphp/pest-plugin-arch: ^2.0
- pestphp/pest-plugin-laravel: ^2.0
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
This package is auto-updated.
Last update: 2024-12-09 04:23:35 UTC
README
Optimize uploaded images on the fly with Bytepoint in Laravel. Fits nicely into your existing workflow
$file = $request->file('image'); $file->bytepoint([ 'type' => 'jpeg' ]) ->store('avatars');
Installation
You can install the package via composer:
composer require flixtechs-labs/laravel-bytepoint
You can publish the config file with:
php artisan vendor:publish --tag="laravel-bytepoint-config"
This is the contents of the published config file:
return [ 'token' => env('BYTEPOINT_TOKEN', ''), 'url' => env('BYTEPOINT_URL', ''), ];
Usage
To use this package you to first to obtain an API token from Bytepont
Visit https://bytepont.flixtechs.co.zw and create an account
On the profile page at the bottom click on "generate token" and copy the token to your .env file as follows
BYTEPOINT_TOKEN=XXXXXX
Add another optional enviroment variable
BYTEPOINT_URL=https://bytepoint.flixtechs.co.zw/api/v1/images
After this, all you need to do is hook bytepoint into your existing workflow.
This package adds a fluent bytepoint()
helper to the UploadedFile
object which accepts an array options as arguments.
Currently you can only specifiy the resulting file type, more options coming soon!
$request->file('image')->bytepoint(['type' => 'resulting type'])->store('avatars');
list of accepted file types
- webp
- png
- jpeg
Just call bytepoint before you save the file storage or any other media library that you are using
Optimizing existing images
You can also optimize existing images using the Bytepoint facade
use FlixtechsLabs\Bytepoint\Facades\Bytepoint; Bytepoint::optimize($filePath, $destinationPath, $fileName = '', $options = []);
The parameters are as follows
- the file
$filePath
is the path to file you want to optimize $destinationPath
is the path to save the optimized file$fileName
is the name of the file, this is optional though$options
an array of options to tell bytepoint how to optimize the image, currently you can only set the resulting file to eitherwebp,jpeg,png
Testing
composer test
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
Credits
License
The MIT License (MIT). Please see License File for more information.