编写程序做厨房调料标签,防油防水,输出:家庭主妇/厨师刚需。

张开发
2026/4/16 23:21:05 15 分钟阅读

分享文章

编写程序做厨房调料标签,防油防水,输出:家庭主妇/厨师刚需。
实际应用场景描述在商用厨房或家庭烹饪中调料瓶油、盐、酱、醋表面常因手汗、蒸汽、油烟而变得模糊不清。传统纸质标签遇水即烂普通塑料标签难以耐受高温和化学腐蚀。本方案利用 Python 脚本 激光雕刻机在亚克力板或不干胶激光专用贴纸上批量生成永久性、防油防水的调料标签。 引入痛点1. 易脱落/模糊普通标签纸在油烟熏烤下不出一周就卷边、字迹晕染。2. 效率低手工书写几十个调料罐费时费力且不美观。3. 不统一字体大小不一厨房显得杂乱影响专业感。4. 不防水清洗台面溅水时标签容易破损。 核心逻辑讲解我们的程序核心逻辑并非简单的“打印”而是矢量路径生成。1. 数据层定义一个包含调料名称的中文字典如{soy_sauce: 酱油, ...}。2. 渲染层使用Pillow 库创建画布将文字渲染为位图。3. 转换层使用Potrace (通常通过pypotrace) 将位图轮廓矢量化。激光切割机主要识别矢量路径DXF/SVG。4. 输出层生成.svg 或.dxf 文件导入激光加工软件如 LightBurn进行雕刻/切割。 代码模块化实现我们将代码拆分为三个模块config.py配置、generator.py生成器、main.py入口。1. 配置文件 (config.py)# config.py# 定义字体、尺寸及输出参数FONT_PATH fonts/simhei.ttf # 确保你有中文字体文件LABEL_WIDTH 80 # 标签宽度 (mm)LABEL_HEIGHT 30 # 标签高度 (mm)FONT_SIZE 24 # 字号DPI 300 # 输出分辨率OUTPUT_DIR output_labels2. 核心生成器 (generator.py)# generator.pyimport osfrom PIL import Image, ImageDraw, ImageFontimport svgwritefrom config import *class LaserLabelGenerator:激光标签生成器类负责将文本转换为激光机可识别的SVG矢量文件def __init__(self):self._ensure_output_dir()def _ensure_output_dir(self):检查输出目录是否存在if not os.path.exists(OUTPUT_DIR):os.makedirs(OUTPUT_DIR)def text_to_svg(self, text: str) - str:核心方法将中文文本转换为SVG路径激光切割通常使用描边(Stroke)而非填充(Fill)# 创建一个临时图像用于计算文本尺寸temp_img Image.new(RGB, (1000, 1000), color(255, 255, 255))draw ImageDraw.Draw(temp_img)font ImageFont.truetype(FONT_PATH, FONT_SIZE)# 获取文本边界框bbox draw.textbbox((0, 0), text, fontfont)text_width bbox[2] - bbox[0]text_height bbox[3] - bbox[1]# 创建最终的SVG绘图对象dwg svgwrite.Drawing(profiletiny,size(f{LABEL_WIDTH}mm, f{LABEL_HEIGHT}mm))# 计算居中位置x_pos (LABEL_WIDTH - text_width * (LABEL_WIDTH / text_width)) / 2y_pos (LABEL_HEIGHT - text_height) / 2 text_height # SVG坐标系Y轴向下# 添加文本路径 (使用stroke模拟激光刻线)dwg.add(dwg.text(text,insert(f{x_pos}mm, f{y_pos}mm),font_familySimHei,font_sizef{FONT_SIZE}px,fillnone, # 关键激光切割不需要填充strokeblack, # 黑色代表切割/雕刻路径stroke_width0.5px))output_path os.path.join(OUTPUT_DIR, f{text}.svg)dwg.saveas(output_path)print(f✅ 已生成标签: {output_path})return output_pathif __name__ __main__:# 测试代码gen LaserLabelGenerator()gen.text_to_svg(生抽)3. 主程序入口 (main.py)# main.pyfrom generator import LaserLabelGenerator# 家庭/厨师常用调料清单刚需SPICE_LIST [盐, 糖, 生抽, 老抽, 陈醋,料酒, 蚝油, 花椒, 八角, 辣椒面,黑胡椒, 白胡椒, 淀粉, 鸡精]def batch_generate():批量生成所有调料标签generator LaserLabelGenerator()print( 开始批量生成厨房调料标签...)for spice in SPICE_LIST:generator.text_to_svg(spice)print(\n 所有标签生成完毕请查看 output_labels 文件夹。)if __name__ __main__:batch_generate() README 文件 (Markdown格式)# 厨房激光调料标签生成器 (Kitchen Laser Label Generator)## 项目简介这是一个使用 Python 生成防油防水厨房调料标签的工具。专为激光雕刻机设计生成的 SVG 文件可直接用于雕刻亚克力或激光专用贴纸。## ✨ 功能特点* **批量生成**: 一键生成十几种常用调料标签。* **矢量输出**: 输出 SVG 格式激光加工无锯齿。* **完全定制**: 修改 config.py 可调整尺寸和字体。## ️ 环境准备1. Python 3.82. 安装依赖:bashpip install Pillow svgwrite3. 下载中文字体 (如 SimHei.ttf) 并放入 fonts/ 目录。## 使用说明1. 运行主程序:bashpython main.py2. 将 output_labels 目录下的 .svg 文件导入您的激光切割软件。3. **推荐参数**:* **材质**: 激光哑光银/黑贴纸 或 透明亚克力* **功率**: 60% (根据机器调整)* **速度**: 300mm/s (雕刻模式) 核心知识点卡片知识点 技术细节 应用场景Pillow 图像处理ImageDraw.textbbox() 精确计算文本占位防止裁剪。 确保文字在标签框内居中。SVG 矢量图形svgwrite 库构建 XML 结构。fillnone 是关键。 激光机只认线条不认色块填充。激光工艺参数 雕刻 (Engraving) vs 切割 (Cutting)。标签通常只用雕刻。 避免切穿贴纸背衬。模块化设计config.py 分离配置便于后期维护。 更换字体或尺寸无需改业务逻辑。 总结作为全栈开发者我们不仅要会写 Web API更要懂得用代码连接物理世界。这个案例展示了如何利用 Python 的生态系统Pillow,svgwrite解决一个具体的生活痛点。对于家庭主妇而言这是一套永久耐用、美观统一的解决方案对于厨师而言这是提升出餐效率和厨房专业度的利器。技术不只是代码更是解决问题的手段。 快拿起你的激光头给你的厨房做个“微创手术”吧利用AI解决实际问题如果你觉得这个工具好用欢迎关注长安牧笛

更多文章