{"id":24876089,"url":"https://github.com/14790897/handwriting-web","last_synced_at":"2026-04-17T08:01:11.792Z","repository":{"id":175562072,"uuid":"654116130","full_name":"14790897/handwriting-web","owner":"14790897","description":"将文本转为模拟手写文字的网页版","archived":false,"fork":false,"pushed_at":"2026-04-16T15:39:47.000Z","size":78384,"stargazers_count":583,"open_issues_count":3,"forks_count":88,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-04-16T17:32:12.552Z","etag":null,"topics":["free","handwrite","web"],"latest_commit_sha":null,"homepage":"https://handwrite.sixiangjia.de","language":"Vue","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/14790897.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":null,"patreon":"liuweiqing","open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"lfx_crowdfunding":null,"polar":null,"buy_me_a_coffee":null,"thanks_dev":null,"custom":null}},"created_at":"2023-06-15T12:22:29.000Z","updated_at":"2026-04-16T14:58:54.000Z","dependencies_parsed_at":"2023-10-03T12:35:43.580Z","dependency_job_id":"779a2fae-b9c8-458b-bdaf-cf3f5442f832","html_url":"https://github.com/14790897/handwriting-web","commit_stats":null,"previous_names":["14790897/handwriting-web"],"tags_count":39,"template":false,"template_full_name":null,"purl":"pkg:github/14790897/handwriting-web","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/14790897%2Fhandwriting-web","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/14790897%2Fhandwriting-web/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/14790897%2Fhandwriting-web/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/14790897%2Fhandwriting-web/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/14790897","download_url":"https://codeload.github.com/14790897/handwriting-web/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/14790897%2Fhandwriting-web/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31920518,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-16T18:22:33.417Z","status":"online","status_checked_at":"2026-04-17T02:00:06.879Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["free","handwrite","web"],"created_at":"2025-02-01T08:20:10.520Z","updated_at":"2026-04-17T08:01:11.781Z","avatar_url":"https://github.com/14790897.png","language":"Vue","readme":"[English](README_en.md) | [中文](README.md)\n\n# 手写文字生成网站\n\n![star](https://atomgit.com/liuweiqing147/handwriting-web/star/badge.svg)\n\n欢迎来到我的手写文字生成网站！这个平台允许你使用现有的字体来创建模拟手写文字的图片。\n\n网址：https://handwrite.sixiangjia.de\n视频介绍： https://www.bilibili.com/video/BV1DM4y1W7fp/\n![Alt text](image-generate.png)\n电报讨论群组：https://t.me/+zFImOziSNullOTE1\n\n## 功能\n\n### 自定义字体\n\n你可以上传自己的字体来生成符合你需求的独特手写风格。\n\n### 背景图片\n\n上传你想要的背景图片，为你的手写文字添加个人风格。如果你没有背景图片，别担心！只需指定图片的宽度和高度，我的网站将自动为你生成带有横线的背景图片。\n\n### 可调参数\n\n你可以完全控制各种参数，如边距（上、下、左、右），字符间的随机扰动，笔画的旋转偏移，墨水的深度变化，涂改痕迹。这使你可以微调你的手写文字的外观。\n\n### 从各种文件类型中提取文本\n\n我的网站可以从各种文件类型中提取文本内容（如 pdf，docs），使你能够方便地上传文本。\n\n### 预览功能\n\n我在网站的右侧添加了预览功能。这使你可以在最终确定之前方便地查看你的手写文字图片的效果。\n\n### 完整图片生成\n\n一旦你对预览满意，你可以生成一整套图片。这些图片将被方便地打包成一个 zip 文件，以便于下载。\n\n### pdf 导出功能\n\n一键生成 pdf，不用再手动粘贴图片\n\n## 自己搭建的方法\n\n克隆项目，在项目目录中使用`docker-compose up -d`，默认端口为 2345\n\n若要添加字体，字体文件放在项目根目录下的 ttf_files 中\n\n### CPU 限制配置\n\n默认配置中对容器进行了 CPU 限制：\n\n- frontend 容器：使用 50%的 CPU\n- backend 容器：使用 80%的 CPU\n\n如果不想限制 CPU 使用，可以在 `docker-compose.yml` 文件中删除以下配置：\n\n```yaml\ncpu_count: 1\ncpu_quota: 50000 # 或 80000\ncpu_period: 100000\n```\n\n或者可以调整 `cpu_quota` 的值来设置不同的 CPU 使用限制。\n\n## 本地运行\n\n### 环境要求\n\n- **Python 版本**: 3.8 - 3.13（推荐 3.10 或 3.11）\n- **Node.js 版本**: 14.x 或更高\n\n### 方法一：使用 VS Code 一键启动（推荐）\n\n1. 克隆项目到本地\n2. 使用 VS Code 打开项目文件夹\n3. 按 `Ctrl+Shift+B` 快捷键，自动并行启动前端和后端开发服务器\n4. 打开浏览器，输入 http://localhost:8080 ，即可访问网站\n\n**其他可用任务**（通过 `Ctrl+Shift+P` → `Tasks: Run Task` 访问）：\n\n- 🔧 安装所有依赖\n- 📦 安装前端依赖\n- 🐍 安装后端依赖\n- 🏗️ 构建前端项目\n- 🐳 启动/停止 Docker Compose\n- 🧹 清理前端构建\n\n### 方法二：手动启动\n\n1. 克隆项目到本地\n2. 进入 backend 文件夹，运行后端程序\n\n```shell\ncd backend\npip install -r requirements.txt\npython app.py\n# 注意：服务将在 5005 端口启动\n```\n\n3. 进入 frontend 文件夹，运行前端程序\n\n```shell\ncd frontend\nnpm install\nnpm run serve\n```\n\n4. 打开浏览器，输入 http://localhost:8080 ，即可访问网站\n\n## 结语\n\n我希望你喜欢使用我的手写文字生成网站来创建你的个性化手写文字图片！\n\n## 随笔\n\n2024.6.13 由于昨天需要完成政治论文的手写，于是亲自体验了我的程序，发现效果确实不错，但是几个月来一直没有解决处理大量文字的时候程序没响应的问题，经过我添加日志发现，其实后端一直在生成图片，但是由于 nginx 的超时限制导致请求失败（这个在 docker 的日志中可以看到），于是我修改了外部和镜像内部的 nginx 的超时配置，但是问题仍然存在，这时我发现前端控制台中不再是 504 错误而是 524 错误，经过查询发现这是因为 cf 的超时限制是 100 秒，超过 cf 的限制而报错，解决方法是关闭小黄云不享受 cf 的保护，还有一种解决方法就是让后端不断给前端传输数据保持连接活跃。\n\n### 随笔其二\n我感觉以后还是让ai查看问题，因为人没有考虑这么全面，之前文件虽然清理成功，但只是部分的，没有包括pdf，我忽视了，导致磁盘爆满了两次，最后把日志给ai（claude code），让它解决了\n\n## 待做\n\n使用 websocket 保持连接，避免 cf 超时，并通知客户端目前生成进度\nsocketio.emit('image_generated', {'image_index': i, 'image_path': image_path})\n使用队列，通知客户端目前有多少人等待，暂存请求（目前好像是直接抛弃）\n","funding_links":["https://patreon.com/liuweiqing"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F14790897%2Fhandwriting-web","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F14790897%2Fhandwriting-web","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F14790897%2Fhandwriting-web/lists"}