avatar
6.0.0
根據使用者(姓名首字母縮寫)顯示任何使用者的唯一頭像。
該套件最初是為 Laravel 構建的,但也可以在任何 PHP 專案中使用。
在此處閱讀有關與 PHP 專案整合的更多資訊。
composer require laravolt/avatar
composer require laravolt/avatar ~ 0.3
注意:僅適用於 Laravel 5.4 及以下版本,因為從 Laravel 5.5 開始我們使用套件自動發現。
Laravolt Avatar ServiceProvider::class,
...
' Avatar ' => Laravolt Avatar Facade::class,
php artisan vendor:publish -- provider ="Laravolt Avatar ServiceProvider "
這將建立位於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
Gravatar參數參考:https://docs.gravatar.com/api/avatars/images/
Avatar:: create ( ' Susilo Bambang Yudhoyono ' )-> toSvg ();
您可以為 SVG 文字指定自訂字體系列。
< 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 ();
此方法將傳回 Intervention 影像物件的實例,因此您可以將其用於其他目的。
預設情況下,該包將嘗試按原樣輸出任何首字母。如果提供的名稱包含任何非 ASCII 字元(例如 ā、Ě、ǽ),則結果將取決於所使用的字體(請參閱配置)。如果字體支援提供的字符,則會成功顯示,否則不會顯示。
或者,我們可以將所有非 ASCII 轉換為其最接近的 ASCII 對應項。如果沒有找到最接近的對手,這些字元將被刪除。感謝 Stringy 提供如此有用的功能。我們需要的只是更改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 ' ],
],
]
];
我們可以使用以下函數在運行時覆蓋配置:
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
只是一個普通數組,其格式與上面解釋的相同(請參閱配置)。