lasserafn / php-initial-avatar-generator
一个用于为PHP生成带有首字母头像的包
Requires
- php: ^7.0|^7.1|^7.2|^7.3|^7.4|^8.0|^8.1|^8.2
- ext-json: *
- intervention/image: ^2.3
- lasserafn/php-initials: ^3.0
- lasserafn/php-string-script-language: ^0.4
- meyfa/php-svg: ^0.9.0
- overtrue/pinyin: ^4.0
Requires (Dev)
- phpunit/phpunit: ^8.5
- dev-master
- 4.3
- 4.2.1
- 4.2.0
- 4.1.2
- 4.1.1
- 4.1
- 4.0.2
- 4.0.1
- 3.0.3
- 3.0.2
- 3.0.1
- 3.0.0
- 2.3.0
- 2.2.2
- 2.2.1
- 2.2.0
- 2.1.1
- 2.1.0
- 2.0.8
- 2.0.7
- v2.0.6
- v2.0.5
- v2.0
- v1.2
- v1.1
- v1.0
- v0.6.5
- v0.6
- v0.5
- v0.1.7
- v0.1.6
- v0.1.5
- v0.1
- dev-feature/autocolor
- dev-LasseRafn-patch-1
- dev-dependabot/add-v2-config-file
- dev-dependabot/composer/lasserafn/php-string-script-language-0.3
- dev-dependabot/composer/satooshi/php-coveralls-2.2.0
This package is auto-updated.
Last update: 2024-08-26 21:54:22 UTC
README
你有没有看到过那些几乎无处不在的带有你首字母的头像(比如我的就是LR;Lasse Rafn)——这个包允许你以简单的方式生成这样的头像。
支持者
感谢所有支持者!🙏 [成为支持者]
赞助商
通过成为赞助商来支持此项目。您的标志将在此处显示,并链接到您的网站。 [成为赞助商]
还有你也可以使用这个api: https://ui-avatars.com
安装
你只需要使用composer,然后你就可以开始了!
composer require lasserafn/php-initial-avatar-generator
这个包名听起来有点奇怪,对吧?抱歉,我对名字不太擅长。
使用方法
和安装一样,使用也非常简单。通过运行
$avatar = new LasseRafn\InitialAvatarGenerator\InitialAvatar(); $image = $avatar->name('Lasse Rafn')->generate();
就是这样!这个方法将返回一个来自 Intervention图像 的实例,你可以流式传输、下载甚至编码图像
return $image->stream('png', 100);
你还可以直接传递首字母,它将使用这些首字母。如果你只包括一个名字,它将使用该名字的前两个字母。
SVG生成
$avatar = new LasseRafn\InitialAvatarGenerator\InitialAvatar(); echo $avatar->name('Lasse Rafn')->generateSvg()->toXMLString(); // returns SVG XML string
支持的方法和参数
当然,传递一个名字并不是这个可爱的小东西能做的唯一事情!
名称(首字母) - 默认:JD
$image = $avatar->name('Albert Magnum')->generate();
自动字体 - 默认:false
将检测语言脚本(使用 lasserafn/php-string-script-language)并使用支持它的字体。
$image = $avatar->autoFont()->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();
自动颜色
// Will choose a background color based on `name` and a contrasting font color. The color for a specific name will always be the same. $image = $avatar->autoColor()->generate();
字体文件 - 默认:/fonts/OpenSans-Regular.ttf
包含两种字体和两种变体的两个字体
- /fonts/OpenSans-Regular.ttf
- /fonts/OpenSans-Semibold.ttf
- /fonts/NotoSans-Bold.ttf
- /fonts/NotoSans-Regular.ttf
该方法将寻找字体,如果没有找到,它将追加 __DIR__
并再次尝试,如果没有找到,它将默认为第一个GD内部字体。如果你输入一个介于1到5之间的整数,它将使用相应编号的GD内部字体。
// will be Semibold $image = $avatar->font('/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();
如果你打算使用 rounded()
,你想要使用 smooth()
来避免像素化边缘。默认禁用,因为它 COULD 会更慢。我建议只使用CSS进行圆形处理。
字体大小 - 默认:0.5
$image = $avatar->fontSize(0.25)->generate(); // Font will be 25% of image size.
如果图像大小是50px,字体大小是0.5,则字体大小将是25px。
将所有这些组合在一起
在这个例子中,我们将不会使用 -> font() 方法;因为我更喜欢常规的方法。
return $avatar->name('Lasse Rafn') ->length(2) ->fontSize(0.5) ->size(96) // 48 * 2 ->background('#8BC34A') ->color('#fff') ->generate() ->stream('png', 100);
现在,在一个图像中使用它(尺寸为48x48像素,用于视网膜显示)
<img src="url-for-avatar-generation" width="48" height="48" style="border-radius: 100%" />
将会得到
圆角以供外观;实际的头像是实心正方形
Font Awesome 支持
该软件包支持Font Awesome(v5)并已将免费版本以otf
格式分发(参见/fonts
文件夹)。
然而,当使用Font Awesome时,您可能希望显示一个特定的图标而不是用户的首字母缩写。因此,该软件包提供了一个方便的glyph($code)
方法,可以与Font Awesome一起使用。
首先,您需要“找到”您想插入的图标的相应unicode。例如,您可能想显示一个典型的“用户”图标(unicode:f007
)。unicode位于图标名称附近(例如,请参阅以下示例中的用户图标:https://fontawesome.com/icons/user )。
渲染红色头像并带有白色“用户”图标的示例如下
// note that we // 1) use glyph() instead of name // 2) change the font to FontAwesome! return $avatar->glyph('f007') ->font('/fonts/FontAwesome5Free-Regular-400.otf') ->color('#fff') ->background('#ff0000') ->generate() ->stream('png', 100);
要求
- PHP +7.0
- Fileinfo 扩展(来自 intervention/image)
脚本/语言支持
默认字体文件不支持某些字母,因此我添加了一些字体以添加支持。您必须使用autoFont()
来启用此功能。支持的语言包括
- 阿拉伯语
- 亚美尼亚语
- 孟加拉语
- 格鲁吉亚语
- 希伯来语
- 蒙古语
- 中文
- 泰语
- 藏语
贡献者
开源最好是在社区的支持下。任何形式的贡献都非常受赞赏。
支持的图像库(来自 intervention/image)
- GD 库(>=2.0)
- Imagick PHP 扩展(>=6.5.7)