使用PIL绘制带剪切蒙版的渐变?

时间:2011-07-11 17:57:16

标签: python python-imaging-library

PIL Python Imaging Library )是否有方法绘制线性渐变或/并设置剪切路径

我到处寻找,但我找不到任何演示如何使用它们的例子。或者是否有其他图形库可以执行类似的任务?

1 个答案:

答案 0 :(得分: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