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的Image实例,因此你可以流式传输、下载甚至编码图片
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();
AutoFont - 默认: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() 来避免像素化边缘。默认禁用,因为它可能会慢一些。我建议您只使用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 支持
该软件包支持FontAwesome(v5)并已将免费版本以otf
格式分发(见/fonts
文件夹)。
然而,在使用FontAwesome时,您可能想显示一个特定的图标而不是用户的首字母缩写。因此,该软件包提供了一种方便的glyph($code)
方法,可用于与FontAwesome一起使用。
首先,您需要“找到”您想插入的图形的相应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)