allenjb / initial-avatar-generator
一个用于生成带有首字母的 PHP 头像的软件包
资助软件包维护!
Open Collective
Requires
- php: ^8.0|^8.1
- ext-json: *
- imagine/imagine: ^1.3
- lasserafn/php-initials: ^3.0
- meyfa/php-svg: ^0.14
- overtrue/pinyin: ^5.0
Requires (Dev)
This package is auto-updated.
Last update: 2024-09-04 13:02:19 UTC
README
Fork自 lasserafn/php-initial-avatar-generator,更新为使用Imagine,解决与 PHP 8.1 相关的问题
此库基本上可以作为大多数用户的直接替换,以下是一些显著的更改
- 此库使用严格定义的类型
- 此库返回 Imagine 对象作为(非 SVG)生成的头像
- 移除了文件中的字体编号
- 移除了 AutoFont 功能 - 您可以使用 lasserafn/php-string-script-language 包自行实现此功能
- 软件包仅附带默认的 Open Sans Regular 字体
- 不再将 FontAwesome 文件与库一起分发
安装
您只需使用 composer 进行要求,然后就可以开始了!
composer require allenjb/initial-avatar-generator
用法
与安装一样,使用方法非常简单。生成图像是通过运行以下命令完成的
$avatar = new AllenJB\InitialAvatarGenerator\InitialAvatar(); $image = $avatar->name('Lasse Rafn')->generate();
就是这样!该方法将返回一个 Imagine 的 ImageInterface 实例,因此您可以保存或输出图像
return $image->show('png');
如果只传递一个单词,则使用前两个字母。如果传递了超过两个单词,则使用第一个和最后一个单词的首字母。
SVG 生成
$avatar = new AllenJB\InitialAvatarGenerator\InitialAvatar(); echo $avatar->name('Lasse Rafn')->generateSvg()->toXMLString(); // returns SVG XML string
支持的方法和参数
名称(首字母)- 默认:JD
$image = $avatar->name('Albert Magnum')->generate();
宽度 - 默认:48
// will be 96 pixels wide. $image = $avatar->width(96)->generate();
高度 - 默认:48
// will be 96 pixels tall. $image = $avatar->height(96)->generate();
大小 - 默认:48($avatar->width(X)->height(X) 的代理)
// will be 96x96 pixels. $image = $avatar->size(96)->generate();
背景颜色 - 默认:#f0e9e9
// will be red $image = $avatar->background('#ff0000')->generate();
字体颜色 - 默认:#8b5d5d
// will be red $image = $avatar->color('#ff0000')->generate();
字体文件 - 默认:/fonts/OpenSans-Regular.ttf
// will be Semibold $image = $avatar->font('/path/to/fonts/OpenSans-Semibold.ttf')->generate();
字体名称(用于 SVG)- 默认:Open Sans, sans-serif
$image = $avatar->fontName('Arial, Helvetica, sans-serif')->generate();
长度 - 默认:2
$image = $avatar->name('John Doe Johnson')->length(3)->generate(); // 3 letters = JDJ
切换驱动程序 - 默认:gd
$image = $avatar->gd()->generate(); // Uses GD driver $image = $avatar->imagick()->generate(); // Uses Imagick driver
圆形 - 默认:false
$image = $avatar->rounded()->generate();
平滑 - 默认:false
通过调整大小技巧使圆形更平滑。可能会更慢。
$image = $avatar->rounded()->smooth()->generate();
或者可以考虑使用 CSS。
字体大小 - 默认:0.5
$image = $avatar->fontSize(0.25)->generate(); // Font will be 25% of image size.
如果图像大小为 50px,字体大小为 0.5,则字体大小将为 25px。
组合所有这些
return $avatar->name('Lasse Rafn') ->length(2) ->fontSize(0.5) ->size(96) // 48 * 2 ->background('#8BC34A') ->color('#fff') ->generate() ->save('png');
现在,使用它创建一个图像(大小为 48x48 像素的视网膜图像)
<img src="url-for-avatar-generation" width="48" height="48" style="border-radius: 100%" />
将得到
圆形以获得外观;实际的头像是填充的方形
图标字体支持
首先,您需要“找到”您要插入的符号的相应 unicode。例如,使用 FontAwesome,要显示典型的“用户”图标,请使用 unicode:f007
。您通常可以在图标字体浏览器上找到 unicode 字符(代码)。
渲染红色头像并带有白色“用户”符号的示例如下
// note that this code // 1) uses glyph() instead of name // 2) changes the font to FontAwesome! return $avatar->glyph('f007') ->font('/path/to/fonts/FontAwesome5Free-Regular-400.otf') ->color('#fff') ->background('#ff0000') ->generate() ->save('png');