linux矢量图像编辑,使用 inkscape 将位图转化为矢量图

向期刊投论,有时候编辑会来信要求将文章中的某些位图格式(bmp、png、jpg 等)的插图转化为矢量图格式。矢量图的好处,大家应当也都清楚,可以任意放大,图像依然保持清晰。在 Linux 下,我们可以使用 inkscape 实现位图向矢量图的转换。

inkscape 的位图/矢量图转换功能是通过集成一个叫做 Autotrace 的程序来实现的,可以通过 inkscape 的菜单 “File -> Import” 将位图导入,然后利用菜单 "Path -> Trace Bitmap" 来打开 inkscape 所集成的 Autotrac 程序实现对位图对象的矢量图转换处理,如下图所示。转换方式有多种,比如亮度检测、边缘检测、颜色检测等,其目的无非就是将位图中的图形轮廓识别出来。可以根据自己的需要,并试探性的调整各项参数,实现最佳的转换效果。

45c66e6939c4c78adddd95731332dd7e.png

下面对那个 TeX 老狮子手里拿的那本书做个特写,用以展示原始位图经过矢量轮廓跟踪转换效果。先来看原始位图:

4313fe4e62dfbe11f73603b97f125965.png

下面是矢量转换效果:

25255aa0c066490fcbbabfce9db30b4f.png

### 将MATLAB图像导出为SVG格式并嵌入LaTeX文档 #### MATLAB 图像导出为SVG文件 为了实现这一目标,首先需要将MATLAB生成的图形导出成SVG格式。可以通过调用`print`函数来完成此操作: ```matlab % 假设已经创建了一个名为fig的手柄指向的图形窗口 figure(fig); print('output.svg', '-dsvg'); ``` 这段代码会把当前活动的图形对象保存至工作目录下的`output.svg`文件中[^1]。 #### 使用Inkscape或其他工具处理SVG(如果必要) 有时直接由MATLAB产生的SVG可能不完全兼容所有的编辑器或渲染环境。在这种情况下,建议先通过第三方矢量图形编辑软件如Inkscape打开该SVG文件,并做适当调整后再另存为新的SVG版本。这一步骤并非总是必需,取决于最终效果的要求以及后续使用的场景。 #### 在LaTeX中引入SVG图片 对于LaTeX来说,默认并不直接支持SVG格式的插入。一种解决方案是利用`inkscape2tikz`插件或者其他类似的转换工具,将SVG转译成TikZ代码;另一种更简便的方法则是借助于`svg`包,在编译过程中自动调用Inkscape来进行实时转换。下面展示的是后者的方式: 首先确保安装了`svg` LaTeX宏包,并且系统路径下能够找到Inkscape可执行文件。接着按照如下方式编写.tex文档中的相应部分: ```latex \documentclass{article} \usepackage{svg} \begin{document} Here is an included SVG graphic: \includesvg[width=\textwidth]{path/to/output} % 不带扩展名 \end{document} ``` 这里需要注意两点:一是`\includesvg`命令后面的参数指定的是不含`.svg`后缀的文件路径;二是由于实际编译时依赖外部程序(Inkscape),所以应该采用shell escape模式运行pdflatex(`pdflatex -shell-escape yourfile`)以允许其调用其他进程[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值