使用 Laravolt 在 Laravel 中实现即插即用头像
发布于 作者: Paul Redmond
由 Bayu Hendra Winata 开发的 Laravolt Avatar 包,可以轻松地将字符串(如姓名)转换为头像。该包在后台使用 Intervention Image 包,可以动态生成 base64 图片,并保存为图片和 SVG 格式。
在你的 Blade 模板中,基本用法如下所示:
<img src="{{ Avatar::create('Joko Widodo')->toBase64() }}" /> <!-- SVG markup -->{!! Avatar::create('Susilo Bambang Yudhoyono')->toSvg(); !!}
该包高度可配置,你甚至可以在渲染时动态配置单个图片。
// width = 100, height = 200Avatar::create('Soekarno')->setDimension(100, 200);Avatar::create('Soekarno')->setBackground('#001122');Avatar::create('Soekarno')->setShape('square');
以下是编写本文时完整的配置,你可以从中了解到所有自定义头像生成的选项。
<?php return [ // 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. 'chars' => 2, // font size 'fontSize' => 48, // convert initial letter to uppercase 'uppercase' => false, // Fonts used to render text. // If contains more than one fonts, randomly selected based on name supplied 'fonts' => ['path/to/OpenSans-Bold.ttf', 'path/to/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' => 'foreground' ]];
我想指出,在编写本文时,我尝试使用 GD 扩展和 base64
数据 URI 来测试该包,但结果图片的边缘出现了锯齿。建议你尝试不同的配置。我还尝试了 SVG 输出,结果良好,只是在不同的浏览器中字体对齐可能存在细微差异。
了解更多
查看 官方 GitHub 仓库 获取完整的自述文件,并使用 Composer 将其安装到你的 Laravel 项目中。
composer require laravolt/avatar # Or for Laravel 5.1composer require laravolt/avatar ~0.3
请注意,如果你使用的是 Laravel 5.4 或更早版本,需要手动配置 Avatar
门面才能在模板中使用它。