如何使用 QPainterPath 裁剪图像而不保存图像的其余部分

2024-03-21

我有一个 QPainterPath,我想裁剪一个 QPixmap 图像。 这段代码对我有用,但我想使用 PyQt5 内置功能 就像没有 numpy 的 mask

# read image as RGB and add alpha (transparency)
im = Image.open("frontal_1.jpg").convert("RGBA")

# convert to numpy (for convenience)
imArray = numpy.asarray(im)

# create mask
polygon = [(444, 203), (623, 243), (691, 177), (581, 26), (482, 42)]

maskIm = Image.new('L', (imArray.shape[1], imArray.shape[0]), 0)
ImageDraw.Draw(maskIm).polygon(polygon, outline=1, fill=1)
mask = numpy.array(maskIm)
...
newIm = Image.fromarray(newImArray, "RGBA")
newIm.save("out.png")

替换蒙版的一种可能方法是使用 QPainter 的 setClipPath() 方法:

from PyQt5 import QtCore, QtGui

if __name__ == '__main__':
    image = QtGui.QImage('input.png')
    output = QtGui.QImage(image.size(), QtGui.QImage.Format_ARGB32)
    output.fill(QtCore.Qt.transparent)
    painter = QtGui.QPainter(output)

    points = [(444, 203), (623, 243), (691, 177), (581, 26), (482, 42)]
    polygon = QtGui.QPolygonF([QtCore.QPointF(*point) for point in points])

    path = QtGui.QPainterPath()
    path.addPolygon(polygon)
    painter.setClipPath(path)
    painter.drawImage(QtCore.QPoint(), image)
    painter.end()
    output.save('out.png')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 QPainterPath 裁剪图像而不保存图像的其余部分 的相关文章

  • 如何将一组重叠范围划分为不重叠范围?

    假设您有一组范围 0 100 一 0 75 b 95 150 c 120 130 d 显然 这些范围在某些点上重叠 您将如何剖析这些范围以生成不重叠范围的列表 同时保留与其原始范围相关的信息 在本例中为范围后面的字母 例如 运行算法后的上述
  • 无法在 python 中导入名称 GoogleMaps

    我使用下面的代码来获取地址的纬度和经度 from googlemaps import GoogleMaps gmaps GoogleMaps api key address Constitution Ave NW 10th St NW Wa
  • 当图例位于轴之外时选择 matplotlib 图例

    当我修改 legend picking py 示例时 我遇到了一个有趣的怪癖 其中图例位于轴之外 如下所示 leg ax legend loc upper left fancybox True shadow True leg ax lege
  • 动态添加jinja模板

    我有一个 jinja 模板 它是一组 div 标签内的唯一内容 div include temppage html div 当我按下按钮时 我想用其他内容替换标签之间的所有内容 我希望用另一个 jinja 模板 include realpa
  • Python:按条件绘制多个正/负条形图

    这是我第一次用 python 绘制条形图 我的 df 操作 key descript score 0 noodles taste 5 1 noodles color 2 2 noodles health 3 3 apple color 7
  • 根据两个预先计算的直方图报告两个样本的 K-S 统计量

    Problem 在这里 我绘制了存储在文本文件中的 2 个数据集 在列表中 dataset 每个包含 218 亿个数据点 这使得数据太大而无法作为数组保存在内存中 我仍然能够将它们绘制为直方图 但我不确定如何通过2 样本KS测试 http
  • AES 会话密钥的 RSA 解密失败,并显示“AttributeError:‘bytes’对象没有属性‘n’”

    我正在努力在 Python 3 6 上从 PyCryptodome 实现公钥加密 当我尝试创建对称加密密钥并加密 解密变量时 一切正常 但是当我引入 RSA 和 PKCS1 OAEP 的那一刻 一切就都顺理成章了 session key加密
  • 如何使用 tweepy 仅提取主题标签中的文本?

    我想为我的情感分析项目提取主题标签 但是我得到了一个字典列表 其中包含所有主题标签及其在推文中的索引 我只想要文字 我的代码 data tweepy Cursor api search q since a i until b i items
  • self.assertRaises 作为上下文管理器,但 msg 参数未按预期工作

    请检查以下代码 import unittest CORRECT MESSAGE Correct message WRONG MESSAGE Wrong message def fn raise KeyError CORRECT MESSAG
  • Keras ImageDataGenerator 相当于 csv 文件

    我在文件夹中排序了一堆数据 如下图所示 我需要构建一个 DataIterator 以便将数据放入神经网络模型中 当数据是图像时 我找到了很多例子来解决这个问题 使用 Keras 类图像数据生成器及其方法流自目录 但当数据是 csv 结构时则
  • 用于 OAuth 身份验证的 WSGI 中间件

    我使用构建了一个非常小的网络应用程序Flask http flask pocoo org 现在我想向网站添加非常基本的身份验证 我不需要授权 由于 Flask 不支持开箱即用的 auth auth 我想插入 WSGI 中间件来完成这项工作
  • 无法编辑,但可以在 Django 管理中添加新的内联

    这是我的模型 class Note note models TextField null False blank False editable True user models ForeignKey to User null True bl
  • 如何配置应用程序中的所有记录器

    Python 的日志记录模块允许模块或类定义自己的记录器 不同的记录器可以有不同的处理程序 其中一些可能选择记录到文件 而另一些则选择记录到标准输出 现在 我的应用程序使用其中几个模块 每个模块都有自己的记录器 这些记录器具有各种处理程序
  • 加载 IPython 笔记本时出错

    一旦我用 Jupyter 打开笔记本文件 它要求我转换文件 我就再也无法在标准 IPython 笔记本中打开它了 我收到以下错误 Error loading notebook Bad Request 2014 12 21 04 13 03
  • Unpivot Pandas 数据

    我目前有一个DataFrame布置为 Jan Feb Mar Apr 2001 1 12 12 19 2002 9 2003 我想将数据 逆透视 使其看起来像 Date Value Jan 2001 1 Feb 2001 1 Mar 200
  • 获取 pandas 中最后一次出现特定值之后的所有行

    我的数据框看起来像 ID colA 1 B 1 D 2 B 2 D 2 C 我已返回每组中事件 B 最后一次出现后的所有行 输出将是 ID colA 1 D 2 D 2 C 我试过 a df colA str contains B grou
  • 如何在 Python 中将 .docx 转换为 .txt

    我想将大量 MS Word 文件转换为纯文本格式 我不知道如何在 Python 中做到这一点 我在网上找到了以下代码 我的路径是本地路径 所有文件名都类似于 cx xxx 即 c1 000 c1 001 c2 000 c2 001 等 fr
  • 预训练 inception v3 模型的层名称(tensorflow)[重复]

    这个问题在这里已经有答案了 任务是获取a的每层输出预训练的 cnn inceptionv3 https www tensorflow org versions master tutorials image recognition index
  • 类型提示:解决循环依赖

    以下产生NameError name Client is not defined 我该如何解决 class Server def register client self client Client pass class Client de
  • Django:单击按钮加载另一个模板

    我已经在 django 项目上工作了几个星期 只是玩玩以便掌握它的窍门 我有点困惑 我现在有一个名为 home html 的模板 我想知道是否可以将另一个名为 profile html 的模板设置为 home html 模板上的链接 我有一

随机推荐

  • 如何使输入和选择字段的宽度相等

    在表单上 我有一个选择字段和两个输入字段 这些元素垂直对齐 不幸的是 我无法获得这些元素的相同宽度 这是我的代码
  • 在 ASP.Net MVC 中设置 Access-Control-Allow-Origin - 最简单的方法

    我有一个简单的操作方法 它返回一些 json 它在 ajax example com 上运行 我需要从另一个网站 someothersite com 访问该网站 如果我尝试调用它 我会得到预期的 Origin http someothers
  • Pybind11 - 返回指向 unique_ptr 容器的指针

    我一直在使用优秀的 pybind11 库 但遇到了困难 我需要向 Python 返回一个指向不可复制对象的指针 因为该对象包含 unique ptrs 一般来说 这在使用 return value policy reference 的警告下
  • Delphi 和 NoSQL

    有人曾经将 Delphi 与 NoSQL 数据库 如 Mongo CouchDB 或其他数据库 一起使用过吗 您会推荐哪一款 对于 Mongo 有TMongoWire https github com stijnsanders TMongo
  • .NET 和 Lotus Notes 互操作

    我在某个位置有 Lotus Notes 数据库文件 nsf 比方说 http intranet mycompany com somewhere data nsf http intranet mycompany com somewhere d
  • Excel 按名称将工作表数据拆分到新的 Excel 工作簿中[重复]

    这个问题在这里已经有答案了 Model Place model23 35372 model23 35372 model54 31034 model24 31034 model54 31034 model24 31034 我有这个Excel数
  • 如何转储哈希映射的内容?

    如何转储 Java HashMap 或任何其他 的内容 例如转储到 STDOUT 举个例子 假设我有一个具有以下结构的复杂 HashMap student1 gt Map name gt Tim Scores gt Map math gt
  • 如何更改 Treeview 的背景颜色

    我来这里是想问你如何更改树视图的背景 我尝试过 ttk Style configure Treeview background 383838 它仅适用于单元格 但树视图的其余部分保持白色 我尝试更改窗口的背景和框架 但它不起作用 那么 如何
  • 如何根据python中的条件组合或保留列表中的字符串?

    我有三个清单 li1 a a a a b b a a b li2 a a a b a b a a li3 b b a a b 我想通过以下方式 切片和粘贴 元素 b 结果应该是这样的 li1 aaaa b b aa b li2 aaa b
  • 将样式应用于特定类型的所有子元素

    我想为 wpf 编写一个样式 其中 StatusBar 中的所有按钮 具有定义的样式 都具有相同的样式 例如宽度 这是我的风格 以及元素的 xaml
  • 使用java进行服务器端推送

    有没有更简单的方法cometd http cometd org作为java的长轮询框架 因为我需要的是客户端指定一些参数并将它们发送到服务器 服务器处理它们并开始连续将消息推送回客户端 看起来 就像每个服务的线程 客户端接收消息并显示它们
  • 为多个客户管理多个 git 发布分支

    我的公司有一款软件出售给多个客户 但每个客户都有一些不同的要求 不仅仅是 把我们的标志放在这里 它们的核心都是相同的 但有些不需要某些模块 有些则需要所有模块 包括修改 我想在一个 git 存储库中管理所有这些 这样我对它们都有相同的核心
  • 从paleoView导入R中的netcdf时只有正纬度和经度可能是错误的投影

    我用的是古景 https onlinelibrary wiley com doi full 10 1111 ecog 03031软件用于下载过去气候的一些变量 包括 15000BP 10000BP 的平均温度 我可以根据要求上传文件 但至少
  • Android studio 找不到:com.getbase:floatingactionbutton:1.3.0

    我正在尝试使用现有的 android 项目运行我的 gradle 文件 我对这个应用程序的唯一错误是Failed to find com getbase floatingactionbutton 1 3 0 下面是我的 gradle 文件
  • 从 Angular Material 复选框更改 CSS

    有人可以告诉我 当您单击角度材质复选框时 如何更改圆形的颜色 如下图所示 粉色圆圈 这是官方网页的链接 https material angular io components checkbox overview https materia
  • Google 喜欢 Delphi 的编辑/组合控件吗?

    每个人可能都知道我的意思 但要澄清控制需要 当用户编辑文本时触发事件 该事件将提供一个 SuggestionList TStrings 您可以在其中填充匹配 建议 如果 SuggestionList 不为空 则会出现一个下拉菜单 与组合不同
  • Task.WhenAll 是否在后台线程并行运行任务

    以下2个代码片段的作用相同吗 1 var producer Task Run async gt await bar ReadDataAsync var consumer Task Run async gt await bar WriteDa
  • 如何使用 URL 打开应用程序?

    我已经实施了所有必需的事情 但没有成功 我想从浏览器打开应用程序 但不仅仅是网址架构就像 回调 一样 我有类似的东西 http 11 11 21 114 8081 signup callback signupCode 123 id 20 h
  • 将属性从 CAS 释放到 Spring security

    我在客户端使用 Spring security 3 X 在服务器上使用 CAS 4 0 当我进行 CAS Spring 安全集成时 我能够达到票证验证成功的水平 并能够在客户端获得适当的角色 但我在 casServiceValidation
  • 如何使用 QPainterPath 裁剪图像而不保存图像的其余部分

    我有一个 QPainterPath 我想裁剪一个 QPixmap 图像 这段代码对我有用 但我想使用 PyQt5 内置功能 就像没有 numpy 的 mask read image as RGB and add alpha transpar