vpype

vpype

专为绘图仪设计的多功能矢量图形处理和优化工具

vpype是一款专为绘图仪设计的命令行工具,用于处理和优化矢量图形。它能精确布局矢量文件、优化SVG加快绘图、为老式绘图仪输出HPGL、创建生成艺术作品以及处理多层矢量文件。vpype可通过插件扩展功能,作为Python库还提供了创建生成艺术和绘图仪工具所需的数据结构、实用函数和硬件加速的矢量图形查看器。

vpype矢量图形命令行工具绘图优化SVGGithub开源项目

banner

vpype

PyPI python Downloads license Test codecov Sonarcloud Status Documentation Status Code style: Black

vpype 是绘图矢量图形的瑞士军刀命令行工具。

目录

vpype 是什么?

vpype 是绘图矢量图形的瑞士军刀命令行工具。以下是它的功能:

  • 对现有矢量文件进行精确的位置、比例和页面格式控制的布局;
  • 优化现有SVG文件以实现更快速、更清晰的绘图;
  • 为老式绘图仪创建HPGL输出;
  • 通过内置命令或插件从头开始创建生成艺术作品;
  • 创建、修改和处理多层矢量文件以进行多色绘图;
  • 以及更多...

vpype 高度可扩展,通过插件可以大大扩展其功能。例如,已经存在用于绘制像素艺术用阴影进行半色调处理等的插件。请参阅下面的现有插件列表

vpype 也是一个文档完善Python库, 对创建生成艺术和绘图仪工具很有用。它包括数据结构、实用程序和I/O函数,以及 硬件加速的灵活矢量图形查看器。例如,绘图仪生成艺术环境 vsketch就是基于 vpype 构建的。

查看文档以获取更全面的 vpype 介绍。

它是如何工作的?

vpype 通过构建所谓的_命令_的_管道_来工作,其中每个命令的输出被输送到下一个命令的输入。 一些命令将几何图形加载到管道中(例如 read 命令从SVG文件加载几何图形)。其他命令修改这些几何图形,例如通过 裁剪(crop)或重新排序以最小化笔抬起 移动(linesort)。最后,一些其他命令 仅读取管道中的几何图形以用于显示目的(show) 或输出到文件(write)。

管道是使用 vpype 的CLI(命令行界面)在终端中定义的,方法是输入 vpype 后跟 命令列表,每个命令都带有其可选参数和参数:

命令行 这个流程使用五个命令(以粗体显示):

  • read 从SVG文件加载几何图形。
  • linemerge 合并端点相近的路径(在给定的容差范围内)。
  • linesort 重新排序路径,以最小化笔抬起的移动距离。
  • crop 进行裁剪。
  • write 将生成的几何图形导出为SVG文件。

vpype 中还有许多其他可用的命令,请参阅下方的概览

一些命令有必需的参数(以斜体显示)。例如,read命令必须提供文件路径,crop命令必须提供尺寸。命令也可能有可选项。在本例中,--page-size a4表示write命令将生成A4大小的SVG(否则它将与_in.svg_的大小相同)。同样,因为使用了--center,所以write命令在保存SVG之前会将几何图形居中(否则几何图形将保持在原始位置)。

示例

注意:以下示例使用行尾转义符(\)分布在多行上。这样做是为了突出显示管道由哪些命令组成,在实际使用中通常不会这样做。

加载SVG文件,将其缩放到特定大小,并将其居中导出到A4大小的、可直接绘图的SVG文件中:

$ vpype \ read input.svg \ layout --fit-to-margins 2cm a4 \ write output.svg

优化路径以减少绘图时间(合并相连的线条,排序以最小化笔抬起距离,随机化闭合路径的接缝,并减少节点数):

$ vpype \ read input.svg \ linemerge --tolerance 0.1mm \ linesort \ reloop \ linesimplify \ write output.svg

加载SVG并在vpype的查看器中显示(可以仔细检查图层和路径结构):

$ vpype \ read input.svg \ show

加载多个SVG文件并将它们保存为单个多层SVG文件(例如用于多色绘图):

$ vpype \ forfile "*.svg" \ read --layer %_i% %_path% \ end \ write output.svg

将SVG导出为HPGL格式,用于老式绘图仪:

$ vpype \ read input.svg \ layout --fit-to-margins 2cm --landscape a4 \ write --device hp7475a output.hpgl

在SVG上绘制图层名称(此示例使用属性替换):

$ vpype \ read input.svg \ text --layer 1 "{vp_name}" \ write output.svg

将多个SVG文件合并到网格布局中(此示例使用表达式替换):

$ vpype \ eval "files=glob('*.svg')" \ eval "cols=3; rows=ceil(len(files)/cols)" \ grid -o 10cm 10cm "%cols%" "%rows%" \ read --no-fail "%files[_i] if _i < len(files) else ''%" \ layout -m 0.5cm 10x10cm \ end \ write combined_on_a_grid.svg

上一个示例的交互版本可在examples/grid.vpy中找到。它使用input()表达式向用户询问参数:

$ vpype -I examples/grid.vpy Files [*.svg]? Number of columns [3]? 4 Column width [10cm]? Row height [10cm]? 15cm Margin [0.5cm]? Output path [output.svg]?

将SVG按图层拆分为多个文件:

$ vpype \ read input.svg \ forlayer \ write "output_%_name or _lid%.svg" \ end

更多示例和方法可以在cookbook中找到。

vpype 不是什么?

vpype 专注于绘图仪生成艺术,并不旨在成为通用的(如Illustrator/InkScape)矢量图形工具。其主要原因之一是_vpype_将所有曲线(圆形、贝塞尔曲线等)转换为由小段线条组成的线。_vpype_确实导入了元数据,如描边和填充颜色、描边宽度等,但只部分使用它们,并不旨在与SVG规范保持完全一致。这些设计选择使_vpype_的丰富功能成为可能,但限制了它在印刷媒体等方面的使用。

安装

详细的安装说明可在最新文档中找到。 摘要:

  • 推荐使用 Python 3.12,但 vpype 也兼容 Python 3.10 和 3.11。
  • vpype 发布在 Python 包索引 上,可以使用 pipx 安装:
    pipx install "vpype[all]"
  • 这里 提供了 Windows 安装程序,但使用此方法无法安装插件。
  • 可以使用以下命令安装仅包含命令行界面的 vpype 版本:
    pipx install vpype
    此版本不包含 show 命令,但不需要在某些平台上难以或无法安装的依赖项(如 matplotlib、PySide6 和 ModernGL)。

文档

vpype 命令行界面包含自身的详细文档:

vpype --help # 通用帮助和命令列表 vpype COMMAND --help # 特定命令的帮助

此外,在线文档 提供了关于 vpype 基本原理的广泛背景信息、涵盖大多数常见任务的操作指南、vpype API 文档等更多内容。

功能概览

通用

  • 易于使用的命令行界面,具有集成帮助(vpype --helpvpype COMMAND --help)和支持任意单位(例如 vpype read input.svg translate 3cm 2in)。
  • 一流的多层支持,具有全局或每层处理功能(例如 vpype COMMANDNAME --layer 1,3)和可选的概率性图层编辑命令(lmovelcopyldeletelswaplreverse)。
  • 支持每层和全局属性,作为元数据,被多个命令和插件使用。
  • 支持命令行用户输入中的属性表达式替换
  • 支持复杂的每层处理(perlayer)。
  • 强大的硬件加速显示命令,具有可调整的单位、可选的每线着色、可选的笔抬轨迹显示和每层可见性控制(show)。
  • 几何统计提取(stat)。
  • 支持命令历史记录(vpype -H [...])。
  • 支持生成插件的随机数生成器种子配置(vpype -s 37 [...])。

输入/输出

  • 单层和多层 SVG 输入,具有可调整的精度、大型 SVG 的并行处理,支持百分比或缺失宽度/高度(read)。
  • 支持 SVG 输出,具有精细的布局控制(页面大小和方向、居中)、图层支持和自定义图层名称、可选的笔抬轨迹显示、各种着色选项(write)。
  • 支持基于配置的 HPGL 输出生成,具有精细的布局控制(页面大小和方向、居中)。
  • 支持基于模式的文件集合处理(forfile)。

布局和变换

  • 简单灵活的布局命令,用于居中和适应边距,可选择水平和垂直对齐(layout)。
  • 页面旋转命令(pagerotate)。
  • 强大的变换命令,用于缩放、平移、倾斜和旋转几何图形(scaletranslateskewrotate)。
  • 支持任意尺寸的缩放裁剪scaletocrop)。
  • 支持任意数量的几何图形修剪trim)。
  • 任意页面大小定义(pagesize)。

元数据

绘图优化

  • 线条合并,支持可选的路径反转和可配置的合并阈值(linemerge)。
  • 线条排序,支持可选的路径反转(linesort)。
  • 可调节精度的线条简化linesimplify)。
  • 闭合路径的接缝位置随机化,以减少笔抬起/落下的痕迹(reloop)。
  • 支持对每条线生成多次通过multipass)。

滤镜

  • 支持按线长或闭合性进行过滤filter)。
  • 扭曲滤镜,用于手抖或液体般的风格效果(squiggles
  • 支持将所有线条拆分为其组成段(splitall)。
  • 支持反转图层内路径的顺序(reverse)。
  • 支持按绘制距离拆分图层(splitdist

生成

  • 生成任意基本图形,包括线条、矩形、圆形、椭圆和弧线(linerectcircleellipsearc)。
  • 使用内置的赫西字体生成文本text
  • 生成网格状布局(grid)。
  • 在几何图形周围生成边框frame)。
  • 生成用于调试/学习目的的随机线条(random

可扩展性和API

插件

以下是已知的vpype插件列表(如果您的插件未列出,请提交拉取请求):

贡献

欢迎为本项目做出贡献,这并不一定需要软件开发技能!请查看文档中的贡献部分以获取更多信息。

许可证

本项目采用MIT许可证 - 详情请参阅LICENSE文件。

编辑推荐精选

Vora

Vora

免费创建高清无水印Sora视频

Vora是一个免费创建高清无水印Sora视频的AI工具

Refly.AI

Refly.AI

最适合小白的AI自动化工作流平台

无需编码,轻松生成可复用、可变现的AI自动化工作流

酷表ChatExcel

酷表ChatExcel

大模型驱动的Excel数据处理工具

基于大模型交互的表格处理系统,允许用户通过对话方式完成数据整理和可视化分析。系统采用机器学习算法解析用户指令,自动执行排序、公式计算和数据透视等操作,支持多种文件格式导入导出。数据处理响应速度保持在0.8秒以内,支持超过100万行数据的即时分析。

AI工具酷表ChatExcelAI智能客服AI营销产品使用教程
TRAE编程

TRAE编程

AI辅助编程,代码自动修复

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
AIWritePaper论文写作

AIWritePaper论文写作

AI论文写作指导平台

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

AI辅助写作AI工具AI论文工具论文写作智能生成大纲数据安全AI助手热门
博思AIPPT

博思AIPPT

AI一键生成PPT,就用博思AIPPT!

博思AIPPT,新一代的AI生成PPT平台,支持智能生成PPT、AI美化PPT、文本&链接生成PPT、导入Word/PDF/Markdown文档生成PPT等,内置海量精美PPT模板,涵盖商务、教育、科技等不同风格,同时针对每个页面提供多种版式,一键自适应切换,完美适配各种办公场景。

AI办公办公工具AI工具博思AIPPTAI生成PPT智能排版海量精品模板AI创作热门
潮际好麦

潮际好麦

AI赋能电商视觉革命,一站式智能商拍平台

潮际好麦深耕服装行业,是国内AI试衣效果最好的软件。使用先进AIGC能力为电商卖家批量提供优质的、低成本的商拍图。合作品牌有Shein、Lazada、安踏、百丽等65个国内外头部品牌,以及国内10万+淘宝、天猫、京东等主流平台的品牌商家,为卖家节省将近85%的出图成本,提升约3倍出图效率,让品牌能够快速上架。

iTerms

iTerms

企业专属的AI法律顾问

iTerms是法大大集团旗下法律子品牌,基于最先进的大语言模型(LLM)、专业的法律知识库和强大的智能体架构,帮助企业扫清合规障碍,筑牢风控防线,成为您企业专属的AI法律顾问。

SimilarWeb流量提升

SimilarWeb流量提升

稳定高效的流量提升解决方案,助力品牌曝光

稳定高效的流量提升解决方案,助力品牌曝光

Sora2视频免费生成

Sora2视频免费生成

最新版Sora2模型免费使用,一键生成无水印视频

最新版Sora2模型免费使用,一键生成无水印视频

下拉加载更多