1

通过一个程序,我正在生成一个尺寸为 400px x 400px 的 SVG 图像。但是,我想根据一个变量来裁剪这个 SVG 图像的底部,该变量指示应该以像素为单位裁剪图像底部的多少。

这个 SVG 图像是用 pyCairosurface = cairo.SVGSurface("output.svg", WIDTH, HEIGHT)ctx = cairo.Context(surface).

虽然HEIGHT变量是一个常量并且没有改变,但在我对surface对象执行一些操作之后,我希望能够再次调整它的大小。我可以使用 PillowImage对象来裁剪 PNG,但它不支持 SVG。

我也试过用open("output.svg"). 但是,如果我尝试阅读它,我将无法阅读,它显示为空白,因此无法修改。

Python中是否有任何方法可以裁剪SVG图像或在使用pycairo修改后修改其大小?

4

1 回答 1

1

您不能像裁剪 PNG 那样裁剪 SVG,因为在后者中您可以只删除像素,而对于前者,您已经定义了不容易重新计算的路径。

如果您确定要“裁剪”的部分中没有任何内容,则可以使用set_context_size使 svg 上下文/画布更小,同时保留内部的比例和大小。

于 2020-07-09T20:36:33.630 回答