flixtechs-labs/laravel-bytepoint

Bytepoint image optimization API client SDK for laravel

0.0.3 2023-06-16 18:38 UTC

README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

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 either webp,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.