生成包含带有用户名字和姓氏首字母的文本的图像

时间:2019-05-07 23:49:51

标签: laravel intervention

我希望每个用户注册时都有一个默认的个人资料图片。此图像将具有其名字和姓氏的首字母。

我制作了只有彩色的平面图像,然后尝试使用Intervention Image在其上书写文本。它可以工作,但是字体大小太小,我无法增加。我不知道Intervention中的最大字体大小是多少,因为文档对此没有任何说明。 我也尝试过使用其他字体,将字体放在字体文件夹中,然后在$font->file('font/Poppins.ttf')中引用它。它将引发错误'Undefined Offset'

RegisterController.php

protected function create(array $data)
{
    $img = Image::make('storage/avatars/1.jpg');
    $img->text('HW', 125, 80, function ($font) {
        $font->file('font/Poppins.ttf');
        $font->size(40);
        $font->color('#fdf6e3');
        $font->align('center');
        $font->angle(45);
    });
    $filename = time().'.'.'jpg';
    $img->resize(150, 150)->save('storage/avatars/'.$filename);

    return User::create([
        'firstname' => $data['firstname'],
        'lastname' => $data['lastname'],
        'email' => $data['email'],
        'password' => Hash::make($data['password']),
        'avatar' => $filename,
    ]);
}

我有一个默认图像,该图像只有红色作为背景。每当有人注册时,他都必须将此图像作为默认的个人资料图片,并在上面标上他的名字和姓氏的首字母。

1 个答案:

答案 0 :(得分:1)

您没有提供font.ttf文件的正确路径

更改此

$font->file('font/Poppins.ttf');

对此

 $font->file(public_path('/fonts/font.ttf'));