使用PIL用剪贴蒙版绘制渐变?

发布于 2024-11-19 15:24:02 字数 162 浏览 1 评论 0原文

PILPython 图像库)是否有绘制线性渐变或/和设置剪切路径的方法?

我到处都找过,但找不到任何演示如何使用其中任何一个的示例。或者还有其他图形库可以完成类似的任务吗?

Does PIL (Python Imaging Library) have methods to draw linear gradients or/and set clipping paths?

I've looked everywhere but I can't find any examples that demonstrate how to use either. Or are there any other graphics libraries that can do similar tasks?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

听闻余生 2024-11-26 15:24:02

我不确定 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()

该程序的输出:

在此处输入图像描述

此示例使用标准绘图上下文,但还有 GraphicsContext 提供附加功能和更好的渲染(抗锯齿):

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

I'm not sure about PIL, but since you asked about alternatives as well, here's an example of both linear gradients and clipping regions using wxPython.

wxPython isn't strictly for image manipulation but it can get the job done.

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()

Output of this program:

enter image description here

This example uses a standard drawing context, but there's also GraphicsContext which provides additional functionality and better rendering (anti-aliasing):

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文