The ProfileImageGenerator package is a Laravel package for generating customizable images. It provides configuration options for image dimensions, fonts, and more.
- Laravel 10
- Laravel 11
composer require noobtrader/image-generator
-
Add the service provider in
bootstrap/providers.php
:<?php return [ App\Providers\AppServiceProvider::class, \Noobtrader\Imagegenerator\ImageGenerateServiceProvider::class ];
-
Run the vendor publish command:
php artisan vendor:publish --provider="Noobtrader\Imagegenerator\ImageGenerateServiceProvider"
- Select the Noobtrader\Imagegenerator\ImageGenerateServiceProvider (option
7
in the list).
Output:
Copying file [vendor/noobtrader/imagegenerator/config/imagegenerator.php] to [config/profile-imagegenerator.php] DONE Copying directory [vendor/noobtrader/imagegenerator/src/resources/fonts] to [public/imagegenerator/fonts]
- Select the Noobtrader\Imagegenerator\ImageGenerateServiceProvider (option
-
Add the service provider in
config/app.php
underproviders
:'providers' => ServiceProvider::defaultProviders()->merge([ App\Providers\AppServiceProvider::class, App\Providers\AuthServiceProvider::class, App\Providers\EventServiceProvider::class, App\Providers\RouteServiceProvider::class, Noobtrader\Imagegenerator\ImageGenerateServiceProvider::class ])->toArray(),
-
Add the facade alias in
config/app.php
underaliases
:'aliases' => Facade::defaultAliases()->merge([ 'ImageGenerate' => Noobtrader\Imagegenerator\Facades\ImageGenerateFacade::class ])->toArray(),
-
Run the vendor publish command:
php artisan vendor:publish
After publishing the vendor assets, the default configuration file profile-imagegenerator.php
is created in the config
folder.
<?php
return [
'save_img_path' => env('IMAGE_PATH', 'imagegenerator/images'),
'storage_disk' => env('STORAGE_DISK', 'public'), // 'public' or 'do_spaces' or 'minio' or 's3'
'img_width' => env('IMAGE_WIDTH', 200),
'img_height' => env('IMAGE_HEIGHT', 200),
'font_size' => env('FONT_SIZE', 60),
'font_file' => env('FONT_FILE', 'LobsterTwo-Regular.ttf'),
'name_initial_length' => env('NAME_INITIAL_LENGTH', 2),
];
You can override the configuration by adding the following variables to your .env
file:
IMAGE_PATH="imagegenerator/images"
IMAGE_WIDTH="200"
IMAGE_HEIGHT="200"
FONT_SIZE="60"
FONT_FILE="LobsterTwo-Regular.ttf"
NAME_INITIAL_LENGTH="2"
-
Download the desired font file (e.g.,
LobsterTwo-Regular.ttf
). -
Place the font file in the
public/imagegenerator/fonts
directory. -
Update the
.env
file:FONT_FILE="LobsterTwo-Regular.ttf"
Generate an image using the generateImage
method:
use ImageGenerate;
$image = ImageGenerate::generateImage('Anik');
To prevent Git from tracking the generated images, add the following line to your application's .gitignore
file:
/public/imagegenerator/images/
This ensures that dynamically generated images are not included in version control.
This package is licensed under MIT License.
You can find the GitHub repository for this package here.