Tampilkan avatar unik untuk setiap pengguna berdasarkan nama (inisial) mereka.
Paket ini awalnya dibuat untuk Laravel, tetapi juga dapat digunakan dalam proyek PHP apa pun.
Baca lebih lanjut tentang integrasi dengan proyek PHP di sini.
composer require laravolt/avatar
composer require laravolt/avatar ~ 0.3
Catatan: hanya untuk Laravel 5.4 ke bawah, karena sejak Laravel 5.5 kami menggunakan package auto-discovery.
Laravolt Avatar ServiceProvider::class,
...
' Avatar ' => Laravolt Avatar Facade::class,
php artisan vendor:publish -- provider ="Laravolt Avatar ServiceProvider "
Ini akan membuat file konfigurasi yang terletak di config/laravolt/avatar.php
.
$ app -> register ( Laravolt Avatar LumenServiceProvider);
//this will output data-uri (base64 image data)
//something like data:image/png;base64,iVBORw0KGg....
Avatar:: create ( ' Joko Widodo ' )-> toBase64 ();
//use in view
//this will display initials JW as an image
<img src="{{ Avatar::create('Joko Widodo')->toBase64() }}" />
Avatar:: create ( ' Susilo Bambang Yudhoyono ' )-> save ( ' sample.png ' );
Avatar:: create ( ' Susilo Bambang Yudhoyono ' )-> save ( ' sample.jpg ' , 100 ); // quality = 100
Avatar:: create ( ' [email protected] ' )-> toGravatar ();
// Output: http://gravatar.com/avatar/0c5cbf5a8762d91d930795a6107b2ce5814a6ab26e60c7ec6b75bc81c7dfe3ee
Avatar:: create ( ' [email protected] ' )-> toGravatar ([ ' d ' => ' identicon ' , ' r ' => ' pg ' , ' s ' => 100 ]);
// Output: http://gravatar.com/avatar/0c5cbf5a8762d91d930795a6107b2ce5814a6ab26e60c7ec6b75bc81c7dfe3ee?d=identicon&r=pg&s=100
Referensi parameter Gravatar: https://docs.gravatar.com/api/avatars/images/
Avatar:: create ( ' Susilo Bambang Yudhoyono ' )-> toSvg ();
Anda dapat menentukan jenis font khusus untuk teks SVG Anda.
< head >
<!--Prepare custom font family, using Google Fonts-->
< link href =" https://fonts.googleapis.com/css?family=Laravolt " rel =" stylesheet " >
<!--OR-->
<!--Setup your own style-->
< style >
@font-face {
font-family: Laravolt;
src: url({{ asset('fonts/laravolt.woff')) }});
}
</ style >
</ head >
Avatar:: create ( ' Susilo Bambang Yudhoyono ' )-> setFontFamily ( ' Laravolt ' )-> toSvg ();
Avatar:: create ( ' Abdul Somad ' )-> getImageObject ();
Metode ini akan mengembalikan sebuah instance objek gambar Intervensi, sehingga Anda dapat menggunakannya untuk tujuan lebih lanjut.
Secara default, paket ini akan mencoba menampilkan huruf inisial apa pun sebagaimana adanya. Jika nama yang diberikan mengandung karakter non-ASCII (misalnya ā, Ě, ǽ) maka hasilnya akan bergantung pada font yang digunakan (lihat konfigurasi). Jika font mendukung karakter yang disediakan, font tersebut akan berhasil ditampilkan, jika tidak, font tersebut tidak akan ditampilkan.
Alternatifnya, kita dapat mengonversi semua non-ascii ke versi ASCII terdekatnya. Jika tidak ditemukan pasangan terdekat, karakter tersebut akan dihapus. Terima kasih kepada Stringy karena telah menyediakan fungsi-fungsi yang bermanfaat. Yang kita butuhkan hanyalah mengubah satu baris di config/avatar.php
:
' ascii ' => true,
<?php
/*
* Set specific configuration variables here
*/
return [
/*
|--------------------------------------------------------------------------
| Image Driver
|--------------------------------------------------------------------------
| Avatar use Intervention Image library to process image.
| Meanwhile, Intervention Image supports "GD Library" and "Imagick" to process images
| internally. You may choose one of them according to your PHP
| configuration. By default PHP's "Imagick" implementation is used.
|
| Supported: "gd", "imagick"
|
*/
' driver ' => ' gd ' ,
// Initial generator class
' generator ' => Laravolt Avatar Generator DefaultGenerator::class,
// Whether all characters supplied must be replaced with their closest ASCII counterparts
' ascii ' => false ,
// Image shape: circle or square
' shape ' => ' circle ' ,
// Image width, in pixel
' width ' => 100 ,
// Image height, in pixel
' height ' => 100 ,
// Number of characters used as initials. If name consists of single word, the first N character will be used
' chars ' => 2 ,
// font size
' fontSize ' => 48 ,
// convert initial letter in uppercase
' uppercase ' => false ,
// Right to Left (RTL)
' rtl ' => false ,
// Fonts used to render text.
// If contains more than one fonts, randomly selected based on name supplied
' fonts ' => [ __DIR__ . ' /../fonts/OpenSans-Bold.ttf ' , __DIR__ . ' /../fonts/rockwell.ttf ' ],
// List of foreground colors to be used, randomly selected based on name supplied
' foregrounds ' => [
' #FFFFFF ' ,
],
// List of background colors to be used, randomly selected based on name supplied
' backgrounds ' => [
' #f44336 ' ,
' #E91E63 ' ,
' #9C27B0 ' ,
' #673AB7 ' ,
' #3F51B5 ' ,
' #2196F3 ' ,
' #03A9F4 ' ,
' #00BCD4 ' ,
' #009688 ' ,
' #4CAF50 ' ,
' #8BC34A ' ,
' #CDDC39 ' ,
' #FFC107 ' ,
' #FF9800 ' ,
' #FF5722 ' ,
],
' border ' => [
' size ' => 1 ,
// border color, available value are:
// 'foreground' (same as foreground color)
// 'background' (same as background color)
// or any valid hex ('#aabbcc')
' color ' => ' background ' ,
// border radius, only works for SVG
' radius ' => 0 ,
],
// List of theme name to be used when rendering avatar
// Possible values are:
// 1. Theme name as string: 'colorful'
// 2. Or array of string name: ['grayscale-light', 'grayscale-dark']
// 3. Or wildcard "*" to use all defined themes
' theme ' => [ ' * ' ],
// Predefined themes
// Available theme attributes are:
// shape, chars, backgrounds, foregrounds, fonts, fontSize, width, height, ascii, uppercase, and border.
' themes ' => [
' grayscale-light ' => [
' backgrounds ' => [ ' #edf2f7 ' , ' #e2e8f0 ' , ' #cbd5e0 ' ],
' foregrounds ' => [ ' #a0aec0 ' ],
],
' grayscale-dark ' => [
' backgrounds ' => [ ' #2d3748 ' , ' #4a5568 ' , ' #718096 ' ],
' foregrounds ' => [ ' #e2e8f0 ' ],
],
' colorful ' => [
' backgrounds ' => [
' #f44336 ' ,
' #E91E63 ' ,
' #9C27B0 ' ,
' #673AB7 ' ,
' #3F51B5 ' ,
' #2196F3 ' ,
' #03A9F4 ' ,
' #00BCD4 ' ,
' #009688 ' ,
' #4CAF50 ' ,
' #8BC34A ' ,
' #CDDC39 ' ,
' #FFC107 ' ,
' #FF9800 ' ,
' #FF5722 ' ,
],
' foregrounds ' => [ ' #FFFFFF ' ],
],
]
];
Kita dapat mengganti konfigurasi saat runtime dengan menggunakan fungsi berikut:
Avatar:: create ( ' Soekarno ' )-> setDimension ( 100 ); //width = height = 100 pixel
Avatar:: create ( ' Soekarno ' )-> setDimension ( 100 , 200 ); // width = 100, height = 200
Avatar:: create ( ' Soekarno ' )-> setBackground ( ' #001122 ' );
Avatar:: create ( ' Soekarno ' )-> setForeground ( ' #999999 ' );
Avatar:: create ( ' Soekarno ' )-> setFontSize ( 72 );
Avatar:: create ( ' Soekarno ' )-> setFont ( ' /path/to/font.ttf ' );
Avatar:: create ( ' Soekarno ' )-> setBorder ( 1 , ' #aabbcc ' ); // size = 1, color = #aabbcc
Avatar:: create ( ' Soekarno ' )-> setBorder ( 1 , ' #aabbcc ' , 10 ); // size = 1, color = #aabbcc, border radius = 10 (only for SVG)
Avatar:: create ( ' Soekarno ' )-> setShape ( ' square ' );
// Available since 3.0.0
Avatar:: create ( ' Soekarno ' )-> setTheme ( ' colorful ' ); // set exact theme
Avatar:: create ( ' Soekarno ' )-> setTheme ([ ' grayscale-light ' , ' grayscale-dark ' ]); // theme will be randomized from these two options
// chaining
Avatar:: create ( ' Habibie ' )-> setDimension ( 50 )-> setFontSize ( 18 )-> toBase64 ();
// include composer autoload
require ' vendor/autoload.php ' ;
// import the Avatar class
use Laravolt Avatar Avatar ;
// create your first avatar
$ avatar = new Avatar ( $ config );
$ avatar -> create ( ' John Doe ' )-> toBase64 ();
$ avatar -> create ( ' John Doe ' )-> save ( ' path/to/file.png ' , $ quality = 90 );
$config
hanyalah array biasa dengan format yang sama seperti yang dijelaskan di atas (Lihat Konfigurasi).