PyCairo指南--簡介

jopen 11年前發布 | 22K 次閱讀 PyCairo Python開發

PyCairo簡介

這是PyCairo指南。這份指南將基于Python語言,教給你Cairo 2D庫基本的和一些高級的主題。在大多數例子中,我們將會使用Python GTK后端來產生我們的輸出。本指南中所用到的那些圖片可以在此處下載。

計算機圖形

有兩種不同的計算機圖形。向量圖和光柵圖。光柵圖以一個像素的集合來表示圖片。向量圖使用幾何元素,比如點,直線,曲線或者多邊形來表示圖片。這些元素使用數學方程式來創建。

兩種計算機圖形類型都有優點和缺點。向量圖相對于光柵圖的優點是:

  • 占用空間小
  • 具有無限放大的能力
  • 移動,縮放,填充或者旋轉不會降低一幅圖片的質量

Cairo

Cairo是一個用于創建2D向量圖的庫。它是用C程序語言寫的。已經有一些到其他計算機語言的綁定出現了。Python,Perl,C++,C#,Java。Cairo是一個多平臺的庫,可以工作于Linux,BSDs和OSX上。

Cairo支持多種后端。后端是用于顯示所創建的圖形的輸出設備。

  • X Window System
  • Win32 GDI
  • Mac OS X Quartz
  • PNG
  • PDF
  • PostScript
  • SVG

這意味著,我們可以使用Cairo庫在Linux/BSDs,Windows,OSX的窗口中繪制圖形,同時也可以使用這個庫來創建PNG圖像,PDF文件,PostScript文件和SVG文件。

我們可以對比cairo庫和Windows OS上的GDI+庫,及Mac OS上的Quartz 2D庫。Cairo是一個開源軟件庫。自2.8版起,Cairo就是GTK系統的一部分了。

定義

這里我們將提供一些有用的定義。為了使用PyCairo繪制一些東西,我們必須先創建一個繪制上下文( drawing context ).繪制上下文包含描述如何繪制的所有的圖形狀態參數。這包括線的寬度,顏色,繪制到的surface和許多其他東西的信息。這將使得實際的繪圖函數可以接收更少的參數而簡化接口。

一個path是一個用于創建基本形狀如直線,圓弧和曲線等的點的集合。有兩種類型的paths。開的和閉合的paths。在一個閉合的path中,起點和終點相接。在一個開的path中,起點與終點不相接。在PyCairo中,我們以一個空的path開始。首先,我們定義一個path,然后我們通過stroking和/或填充它們來使其可見。每一次調用stroke()或者fill()方法之后,path會被清空。我們不得不定義一個新的path。如果我們想要在繪制之后保持既有的path,我們可以使用stroke_preserve()fill_preserve()方法一個path由subpaths組成。

一個source是我們繪制時所用的畫筆。我們可以把source看作一支筆或者墨水,我們使用它們來畫輪廓線或者填充形狀。總共有四種類型的基本source,顏色(Colors),漸變(gradients),模式(patterns)和圖像(images)。

一個surface是我們將要繪制的一個目的地。我們可以使用PDF或者PostScript surfaces來渲染文檔,或者可以通過Xlib和Win32 surfaces來直接繪制到平臺上。

在source被應用于surface之前,它會先被過濾。mask被用作一個濾鏡。它決定什么地方的source被應用,而什么地方的不應用。mask不透明的部分允許復制自source。透明的部分不允許由source復制到surface。

一個pattern代表一個繪制到一個surface時的一個source。在PyCairo中,一個pattern是你可以從中讀取,并用作一個繪制操作的source或者mask的東西。Patterns可能是純凈的,surface-based或者漸變的。

來源

為了創建這份指南,我們使用了一些資料。包括Apple Cocoa drawing guidePyCairo referenceCairo documentation.

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!