2011-07-11 12 views
1

PILパイソンイメージング図書館は線形グラデーションまたは/を描画するためのメソッドを持っているとクリッピングパスを設定していますか?PILを使用してクリッピングマスクを使用してグラデーションを描画しますか?

私はどこにでも見えましたが、どちらかを使用する方法を示す例は見つかりません。あるいは同様のタスクを行うことができる他のグラフィックライブラリがありますか?

+0

wxPythonはこれを行うことができます。 ( 'GradientFillLinear'と' SetClippingRegion')あなたが興味を持っているなら、例を書くことができます。 – FogleBird

答えて

1

私はPILについてはわかりませんが、代替案についても尋ねたので、ここではwxPythonを使った線形グラデーションとクリッピング領域の例を示します。

wxPythonはイメージ操作に厳密には対応していませんが、ジョブを完了させることができます。

import wx 

def render(dc): 
    dc.Clear() 
    region = wx.RegionFromPoints([(256, 64), (448, 448), (64, 448)]) 
    dc.SetClippingRegionAsRegion(region) 
    dc.GradientFillLinear((0, 0, 512, 512), wx.RED, wx.BLACK, wx.NORTH) 

def main(): 
    app = wx.PySimpleApp() 
    bitmap = wx.EmptyBitmap(512, 512) 
    render(wx.MemoryDC(bitmap)) 
    bitmap.SaveFile('output.png', wx.BITMAP_TYPE_PNG) 

if __name__ == '__main__': 
    main() 

このプログラムの出力:

enter image description here

この例では、標準の描画コンテキストを使用していますが、追加機能と優れたレンダリング(アンチエイリアシング)を提供GraphicsContextもあります:

http://www.wxpython.org/docs/api/wx.GraphicsContext-class.html

+0

ありがとう!私はTkInterの代わりにwxPythonを使い始めるべきだと思います。 –

関連する問題