PyCairo – 我们如何获得剪辑范围?
在本文中,我们将学习如何在Python中使用 PyCairo 获取剪辑范围。该模块计算用户坐标中的边界框,覆盖当前剪辑内的区域。当前剪辑掩盖了对表面的任何更改。
Pycairo 是一个Python模块,为 cairo 图形库提供绑定。该库用于在Python中创建 SVG,即矢量文件。打开 SVG 文件进行查看(只读)的最简单快捷的方法是使用现代 Web 浏览器,如 Chrome、Firefox、Edge 或 Internet Explorer——几乎所有这些浏览器都应该为 SVG 格式提供某种渲染支持。
SVG 代表可缩放矢量图形。它基本上定义了 XML 格式的基于矢量的图形。 SVG 图形在缩放或调整大小时不会失去任何质量。 SVG 文件中的每个元素和每个属性都可以设置动画。
为此,我们将使用带有 Context 对象的 clip_extents() 方法
Syntax : context.clip_extents()
Argument : It takes no arguments
Return : (x1, y1, x2, y2), all float
例子 :
Python3
# importing pycairo
import cairo
# creating a SVG surface
# here geek1 is file name & 700, 700 is dimension
with cairo.SVGSurface("geek1.svg", 700, 700) as surface:
# creating a cairo context object
context = cairo.Context(surface)
# creating a arc without using closing path method
context.arc(100, 60, 40, 0, 1*22/7)
# stroke the context to remove the moved pen
context.stroke()
# creating a arc with using close path method
context.arc(300, 60, 40, 0, 1*22/7)
# makeing close path
context.close_path()
# getting clip extents
a = context.clip_extents()
# stroke the context to remove the moved pen
context.stroke()
# printing message when file is saved
print(a)
输出 :
(0.0, 0.0, 700.0, 700.0)