📜  PyCairo – 径向渐变

📅  最后修改于: 2022-05-13 01:55:45.517000             🧑  作者: Mango

PyCairo – 径向渐变

在这篇文章中,我们将学习使用 PyCairo 通过Python绘制径向渐变。 Pycairo 是一个Python模块,为 cairo 图形库提供绑定。这个库用于在Python中创建 SVG 即矢量文件。打开 SVG 文件进行查看(只读)的最简单快捷的方法是使用现代 Web 浏览器,如 Chrome、Firefox、Edge 或 Internet Explorer——几乎所有这些浏览器都应该为 SVG 格式提供某种渲染支持。

径向渐变由中心点、结束形状和两个或多个色标点定义。

实施步骤:

  1. 导入 PyCairo 模块。
  2. 创建一个 SVG 表面对象并向其添加上下文。
  3. 创建径向渐变对象。
  4. 定义循环或条件,用于添加色条
  5. 创建形状
  6. 源用于通过调用 fill ( ) 方法来填充矩形的内部。

示例 1:

Python3
# importing pycairo
import cairo
  
# creating a SVG surface
# here geek95 is file name & 700, 700 is dimension
with cairo.SVGSurface("geek95.svg", 700, 700) as surface:
  
    # creating a cairo context object for SVG surface
    # useing Context method
    context = cairo.Context(surface)
    context.set_source_rgba(0, 0, 0, 1)
    context.set_line_width(12)
  
    # Translate the context
    context.translate(60, 60)
  
    # Creating a Radial gradient object.
    r1 = cairo.RadialGradient(30, 30, 10, 30, 30, 90)
    r1.add_color_stop_rgba(0, 1, 1, 1, 1)
    r1.add_color_stop_rgba(1, 0.6, 0.6, 0.6, 1)
    context.set_source(r1)
  
    # Creating Circle
    context.arc(0, 0, 40, 0, 3.14 * 2)
  
    # Fill the color inside the Circle
    context.fill()
  
  # printing message when file is saved
print("File Saved")


Python3
# importing pycairo
import cairo
  
# creating a SVG surface
# here geek95 is file name & 700, 700 is dimension
with cairo.SVGSurface("geek95.svg", 700, 700) as surface:
  
    # creating a cairo context object for SVG surface
    # useing Context method
    context = cairo.Context(surface)
    context.set_source_rgba(0, 0, 0, 1)
    context.set_line_width(12)
  
    # Translate the context
    context.translate(60, 60)
  
    # Creating a Radial gradient object.
    r2 = cairo.RadialGradient(0, 0, 10, 0, 0, 40)
    r2.add_color_stop_rgb(0, 1, 1, 0)
    r2.add_color_stop_rgb(0.8, 0, 0, 0)
    context.set_source(r2)
  
    # Creating Circle
    context.arc(0, 0, 40, 0, 3.14 * 2)
  
    # Fill the color inside the Circle
    context.fill()
  
  # printing message when file is saved
print("File Saved")


输出 :

示例 2:

蟒蛇3

# importing pycairo
import cairo
  
# creating a SVG surface
# here geek95 is file name & 700, 700 is dimension
with cairo.SVGSurface("geek95.svg", 700, 700) as surface:
  
    # creating a cairo context object for SVG surface
    # useing Context method
    context = cairo.Context(surface)
    context.set_source_rgba(0, 0, 0, 1)
    context.set_line_width(12)
  
    # Translate the context
    context.translate(60, 60)
  
    # Creating a Radial gradient object.
    r2 = cairo.RadialGradient(0, 0, 10, 0, 0, 40)
    r2.add_color_stop_rgb(0, 1, 1, 0)
    r2.add_color_stop_rgb(0.8, 0, 0, 0)
    context.set_source(r2)
  
    # Creating Circle
    context.arc(0, 0, 40, 0, 3.14 * 2)
  
    # Fill the color inside the Circle
    context.fill()
  
  # printing message when file is saved
print("File Saved")

输出 :