用thinkphp6写一个艺术签名系统,原理就是调用字体生成图片
1在数据库中创建一个用于存储文字生成结果的表,可以包含字段如下:
id: 主键,用于唯一标识每个生成结果
text: 存储生成的文字内容
font: 存储使用的字体名称
sql执行语句
CREATE TABLE `text` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`text` varchar(255) NOT NULL,
`font` varchar(50) NOT NULL,
`image` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
接下来创建控制器
public function generateText()
{
// 获取输入的文字
$text = $_POST['text'];
// 获取选择的字体
$font = $_POST['font'];
// 设置生成图片的宽度和高度
$width = 400;
$height = 200;
// 创建一个空白图片
$image = imagecreatetruecolor($width, $height);
// 设置背景颜色和文字颜色
$backgroundColor = imagecolorallocate($image, 255, 255, 255);
$textColor = imagecolorallocate($image, 0, 0, 0);
// 使用选择的字体
$fontFile = 'path/to/font/' . $font . '.ttf';
// 绘制文字到图片上
imagettftext($image, 20, 0, 10, 100, $textColor, $fontFile, $text);
// 保存生成的图片
$filename = 'path/to/save/' . time() . '.png';
imagepng($image, $filename);
// 关闭图片资源
imagedestroy($image);
// 将生成的文字信息保存到数据库
$result = Db::name('text')->insert([
'text' => $text,
'font' => $font,
'image' => $filename
]);
if ($result) {
return '文字生成成功!';
} else {
return '文字生成失败!';
}
}
前端html
<body>
<div class="container mt-5">
<h1>生成文字</h1>
<form action="/text/generateText" method="post">
<div class="mb-3">
<label for="text" class="form-label">输入文字:</label>
<input type="text" class="form-control" id="text" name="text">
</div>
<div class="mb-3">
<label for="font" class="form-label">选择字体:</label>
<select class="form-select" id="font" name="font">
<option value="font1">字体1</option>
<option value="font2">字体2</option>
<option value="font3">字体3</option>
</select>
</div>
<button type="submit" class="btn btn-primary">生成</button>
</form>
</div>
</body>
需要的拿去玩玩
版权说明
文章采用: 《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权。版权声明:未标注转载均为本站原创,转载时请以链接形式注明文章出处。如有侵权、不妥之处,请联系站长删除。敬请谅解!