dwr/avatar-bundle

一个简单的 Symfony 3.x & Symfony 2.x 扩展包,用于使用 GD 创建头像图片。

2.0 2017-02-02 10:48 UTC

This package is not auto-updated.

Last update: 2024-09-28 16:41:28 UTC


README

License Latest Stable Version Total Downloads Build Status Scrutinizer Code Quality Coverage Status

DwrAvatarBundle

本扩展包为 Symfony2 和 Symfony3 提供简单的图像头像生成支持。

头像示例

plainAvatars

plainAvatar 示例 #1   plainAvatar 示例 #2   plainAvatar 示例 #3  

profileAvatars

profileAvatar 示例 #1   profileAvatar 示例 #2   profileAvatar 示例 #3  

为了生成头像,您可以

在控制器中

public function indexAction()
    {
        
        $avatar = new AvatarFactory();

        //for plainAvatar
        $plainAvatar = $avatar->generate(new PlainAvatar(140, 140)); 

        //for profileAvatar
        $profileAvatar = $avatar->generate(new ProfileAvatar(140, 140));
        
        return array(
            'plainAvatar'   => $plainAvatar->render()
            'profileAvatar' => $profileAvatar->render()
        );
    }

并在一个 视图 文件(twig)中

<img src="data:image/jpg;base64,{{ plainAvatar }}" >
<img src="data:image/jpg;base64,{{ profileAvatar }}" >

安装

安装是一个快速的三步过程

  1. 使用 composer 下载 DwrAvatarBundle
  2. 启用扩展包
  3. 将路由添加到 routing.yml 以在浏览器中打开示例

步骤 1: 使用 composer 下载 DwrAvatarBundle

在 composer.json 中添加 DwrAvatarBundle 版本 2.0(针对 Symfony 3

{
    "require": {
        "dwr/avatar-bundle": "2.0"
    }
}

在 composer.json 中添加 DwrAvatarBundle 版本 1.0(针对 Symfony 2

{
    "require": {
        "dwr/avatar-bundle": "1.0"
    }
}

运行以下命令下载扩展包

$ php composer.phar require dwr/avatar-bundle

Composer 会将扩展包安装到您的项目目录 vendor/dwr/avatar-bundle 中。

步骤 2: 启用扩展包

在 kernel 中启用扩展包

<?php
// app/AppKernel.php

public function registerBundles()
{
    $bundles = array(
        // ...
        new Dwr\AvatarBundle\DwrAvatarBundle(),
    );
}

步骤 3: 将路由添加到 routing.yml 以在浏览器中打开示例

dwr_avatar:
    resource: "@DwrAvatarBundle/Controller/"
    type:     annotation
    prefix:   /dwr_avatarbundle

恭喜!您现在可以在您的 symfony 应用程序中生成头像了。示例如何显示 PlainAvatar,您可以在:yours-application-url/dwr_avatarbundle/avatar 中找到。

用法

在 base64 流中生成头像

控制器

public function indexAction()
    {
        
        $avatar = new AvatarFactory();

        //for plainAvatar
        $plainAvatar = $avatar->generate(new PlainAvatar(140, 140)); 

        //for profileAvatar
        $profileAvatar = $avatar->generate(new ProfileAvatar(140, 140));
        
        return array(
            'plainAvatar'   => $plainAvatar->render()
            'profileAvatar' => $profileAvatar->render()
        );
    }

视图(twig)

<img src="data:image/jpg;base64,{{ plainAvatar }}" >
<img src="data:image/jpg;base64,{{ profileAvatar }}" >

输出

plainAvatar 示例 #1   plainAvatar 示例 #2   plainAvatar 示例 #3  

profileAvatar 示例 #1   profileAvatar 示例 #2   profileAvatar 示例 #3  

如何生成 base64 流中头像的示例也存储在 AvatarBundle/Controller/DefaultController.php。

生成头像并将其保存到文件

public function indexAction()
    {
        
        $avatar = new AvatarFactory();
        $plainAvatar = $avatar->generate(new PlainAvatar(140, 140));
        
        return array(
            'plainAvatar' => $plainAvatar->save('web/images/avatar/directory')
        );
    }

上述示例将头像文件生成到目录中。目录名称作为函数 save 的参数传入。文件名将自动根据此生成

$filename = date('YmdHis') . uniqid() . '.jpg';

如果您想生成具有自己文件名的头像,可以将文件名(例如 image.jpg)作为 save 方法的第二个参数传入。

public function indexAction()
    {
        
        $avatar = new AvatarFactory();
        $plainAvatar = $avatar->generate(new PlainAvatar(140, 140));
        
        return array(
            'plainAvatar' => $plainAvatar->save('web/images/avatar/directory', 'image.jpg')
        );
    }

变更日志

请参阅 CHANGELOG 了解最近更改的更多信息。

故障排除

  1. 请确保您的 Web 服务器已安装 GDhttps://php.ac.cn/manual/en/function.gd-info.php