用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>
需要的拿去玩玩
声明:
本站所有资源均来源于网络收集,一切版权©归原作者所有,请保留原版权信息。
所有资源不排除存在BUG,残缺或加密的可能,请三思后再买,否则购买后一率不能退款;
本站分享仅供参考学习和演示,禁止商用,如需商用,请从正规渠道选择购买正版!使用正版!支持正版!