用thinkphp6写一个艺术签名系统,原理就是调用字体生成图片

用thinkphp6写一个艺术签名系统,原理就是调用字体生成图片

用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>

需要的拿去玩玩

分享到 :
相关推荐

发表评论

登录... 后才能评论