identicon php生成大小,GitHub - 2015WUJI01/laravel-identicon

Identicon 生成器 Laravel 版

本项目源自于 yzalis/identicon,它是一个 PHP 版的 Identicon 生成器,这个项目很棒,很多人都喜欢它,我不想侵权,但是它很久没更新了,我修复了一些错误并提交了 PR,但暂未得到合并。因此我临时做了一个 Laravel 版的 Identicon,如果可以的话,希望大家可以给源项目 yzalis/identicon 一个 star ⭐️。

Identicon 是一个基于字符串生成一个 identicon 图像的库。

以下是一些精彩的输出例子!

d8ff68a10d2de0ad6d1c1cfcedfbfad3.png  

a63622264e2d6739316646eb830fe8e4.png  

b5ecce967d52348a7bcd1a552229780b.png  

8983fa4daab1c73ed54d8b8d8b4697a3.png  

50406029cd3f926c1bbb09f8e4ab2b79.png

安装

推荐通过 composer 安装 Identicon。

Step 1. 在你的项目中引入本库:

composer require wuchienkun/laravel-identicon

Step 2. 发布配置文件:

php artisan vendor:publish --tag=laravel-identicon

配置

发布配置文件后,可以在项目根目录的 config 文件夹中找到 identicon.php:

在这里可以选择默认的 Identicon Generator,默认使用的是 imagick。可选项有:imagick(需要安装 imagick 拓展),gd,svg。

'generator' => env('IDENTICON_GENERATOR', 'imagick')

可以在配置文件中修改 可以在 .env 文件中修改,例如:

IDENTICON_GENERATOR=gd

优先推荐 imagick, 其次推荐小尺寸使用 gd, 大尺寸使用 svg

使用

注意:

生成的图像都是透明背景的 PNG 格式。

字符串可以是邮箱,IP 地址,用户名,ID 或者其他的东西。

在 IdenticonServiceProvider 中已经注册了 identicon 单例,因此可以使用 app('identicon') 来获取 Identicon 实例。另外也注册了 Identicon Facade,也可以通过依赖注入的方式使用 Identicon。

获取 Identicon 实例

在 Laravel 中有 3 种方式获取 Identicon 实例:

// 1. 通过容器获取单例

app('identicon')->getImageDataUri('foo');

// 2. 通过 Facade 获取单例

\Wuchienkun\Identicon\Facades\Identicon::getImageDataUri('foo');

// 3. 依赖注入

public function index(\Wuchienkun\Identicon\Identicon $identicon)

{

$identicon->getImageDataUri('foo');

...

}

1. getImageDataUri(获取图像 URI)

$identicon->getImageDataUri('foo');

得到的是一个 base64 格式的图片(例如:data:image/png;base64,iVBORw0KGg...),可以直接在 img 标签中使用:

%7B%7B%20app('identicon')->getImageDataUri('foo')%20%7D%7D

2. 修改图像大小

默认的大小是 64 像素。如果你想改变图像大小,只需要添加第二个参数。在这个例子中是 512 x 512px。

$identicon->getImageDataUri('foo', 512);

3. 图片颜色

图像颜色是由字符串的哈希值自动生成的,但是你可以添加第三个参数指定一个颜色。

// 颜色值可以使用一个 6 字符的十六进制字符串

$identicon->getImageDataUri('bar', 64, 'A87EDF');

$identicon->getImageDataUri('bar', 64, '#A87EDF');

// 也可以使用由红(R)、绿(G)、蓝(B)数值组成的数组

$identicon->getImageDataUri('foo', 64, array(200, 100, 150));

4. 背景色

图像默认的背景色是透明的,你可以通过添加第四个参数指定背景色,和前面的前景色一样。

$identicon->getImageDataUri('bar', 64, null, 'A87EDF');

5. 边距

默认是没有边距的,如果你想要带边距的图像,你可以添加第五个参数。推荐使用图像的大小的十分之一,实际图像的尺寸为size + margin * 2,即:图像的 size 为 100,边距为 10,则实际大小为 120*120。

在这个例子中,我们设置了灰色的背景,这样你可以很明显的看到边距:

0c4f8149ccfd6b2cb43d39f65df9502d.png  

Benjamin_with_margin.png  

8.8.8.8_with_margin.png  

8.8.4.4_with_margin.png  

yzalis_with_margin.png

$identicon->getImageDataUri('foo', 100, null, '#f0f0f0', 10);

单元测试

为了运行单元测试,你需要一组依赖,它们可以通过 Composer 安装:

php composer.phar install

一旦安装,就可以使用下面的命令:

./vendor/bin/phpunit

应该一切都好了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值