laravel - 生成带有用户名字和姓氏首字母的文本的图像
问题描述
我希望每个用户在注册时都有一个默认的个人资料图片。此图像将具有其名字和姓氏的首字母。
我用单一颜色制作了一张普通图像,然后尝试使用 Intervention Image 在其上写文字。它可以工作,但是字体太小我无法增加它。我不知道干预中的最大字体大小是多少,因为文档没有说明它。我还尝试了不同的字体,将字体放在字体文件夹中,然后将其引用到$font->file('font/Poppins.ttf')
. 它抛出一个错误'Undefined Offset'
。
注册控制器.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,
]);
}
我有一个只有红色作为背景的默认图像。每当一个人注册时,他必须将此图像作为默认个人资料图片,上面带有他的名字和姓氏的首字母。
解决方案
您没有提供 font.ttf 文件的正确路径
改变这个
$font->file('font/Poppins.ttf');
对此
$font->file(public_path('/fonts/font.ttf'));
推荐阅读
- python - 如何在机器人框架中运行特定的测试用例
- sql - INT ARRAY 中每个值的运行 mode() 函数
- reactjs - 浏览器中的安全存储密钥 (React)
- python - 使用python脚本增加xml文件中的版本
- java - 带地图的通用通配符
- c++ - 在 Visual Studio 2019 中使用 numeric_limits 的 C++ long double min/max 值错误
- javascript - JS:数组打印重复的值
- javascript - JavaScript 将字符串的首字母大写
- sql - 在 Oracle 中创建一个触发器,用于插入或更新表,同时保持旧记录不变
- jenkins - pod init 状态,同时在 k8s 中使用 helm 安装 jenkins