绘制圆角矩形时出现透明度问题

2023-12-19

我正在尝试使用我在教程中找到的一些代码绘制带圆角的矩形,我稍作修改:

# Rounded rectangle algorithm copied from http://ju.outofmemory.cn/entry/18060
def round_corner(self, radius, fill):
    corner = Image.new('RGBA', (radius, radius), (0, 0, 0, 0))
    draw = ImageDraw.Draw(corner)
    draw.pieslice((0, 0, radius * 2, radius * 2), 180, 270, fill=(fill))
    return corner

def round_rectangle(self, size, radius, fill):
    width, height = size
    rectangle = Image.new('RGBA', size, red)
    corner = self.round_corner(radius, fill)
    rectangle.paste(corner, (0, 0))
    rectangle.paste(corner.rotate(90), (0, height - radius)) # Rotate the corner and paste it
    rectangle.paste(corner.rotate(180), (width - radius, height - radius))
    rectangle.paste(corner.rotate(270), (width - radius, 0))
    return rectangle

    # Get rounded box
    img = self.round_rectangle((200, 200), 30, black)
    # Join with output image
    self.image_canvas.paste(img, (500,500))     

但用 tkinter 显示后我的结果如下所示:

注意圆角外面的灰色方角。这似乎发生在我的 Windows 和 Ubuntu 开发机器上。我不确定它们是如何到达那里或如何摆脱它们的。


事实证明,即使原始图像本身具有 Alpha 通道,粘贴功能也需要遮罩。因此,您可以直接使用要合并的图像的 Alpha 通道作为蒙版:

 self.image_canvas.paste(img, (500,500), img)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

绘制圆角矩形时出现透明度问题 的相关文章

随机推荐

  • NextJS 头中的 HubSpot 表单脚本

    我正在尝试将以下脚本添加到我的 NextJS Head 中 然后它给了我两个错误 错误 1 意外的令牌 你的意思 or rbrace ts 1381 用于右括号 错误 2 语法错误 意外的标记 应为 对于 region na1 行 这是整个
  • 用于查找平均值的 REST 接口

    假设我想创建一个 REST 接口来查找数字列表的平均值 假设一次提交一个数字 你会怎么做 发布号码至https example com api average https example com api average 如果这是第一个数字
  • 将 pandas 中的 HH:MM 列转换为分钟

    我想将 hh mm 格式的数据集中的列转换为分钟 我尝试了以下代码 但它显示 AttributeError Series 对象没有属性 split 数据采用以下格式 我在数据集中也有 nan 值 计划是计算值的中位数 然后用中位数填充具有
  • 在 ArrayFormula 中组合文本

    我有一张使用 Google 表格的表格 它具有三列 这些列始终具有空值或该列的特定值 每行将有一个 两个或三个值 它永远不会在一行上有三个空值 在第四列中 我想要一个 ArrayFormula 来组合这些值 并在有多个值时用逗号分隔这些值
  • 确保 pandas MultiIndex 中的字典顺序

    我得到了一些带有 MultiIndex 的数据 一些计时统计数据 其中包含 设备 构建配置 测试功能 等的索引级别 我想切掉其中一些索引列 看来 loc 函数的 切片器 可能是可行的方法 但是 那docs http pandas pydat
  • 如何使用 docker run 中传递的动态值通过 Dockerfile 创建属性文件?

    我对 Docker 还比较陌生 也许这是一个愚蠢的问题 我的目标是创建一个具有system properties文件 顾名思义 是一个带有键值对的属性文件 我想填写这个文件中的值动态地 所以我认为这些值需要作为环境变量传递给 Docker
  • 迭代按键排序的字典中的键/值对

    我有以下代码 它只打印字典中的键 值对 这些对按键排序 for word count in sorted count words filename items print word count 然而 调用iteritems 代替items
  • IntelliJ IDEA“自动构建项目”显然不起作用

    我是 Java Eclipse 的长期用户 并且习惯于在我引起编译错误和警告时立即在 问题 视图中看到这些错误和警告 现在我正在使用 IntelliJ IDEA Kotlin 和 Java 有一个 问题 视图 但即使代码窗口的边缘显示错误或
  • 无法在 Spring Boot 中使用 java.util.Duration 作为 @Value 配置

    我们无法在 Spring Boot 中使用 java util Duration 作为 Value 配置 此处展示此问题的示例项目 https github com costimuraru spring boot sample https
  • 为什么当 DataGrid 更改时我的 ViewModel 中的属性没有更新?

    我正在尝试创建一个 UserControl 它可以让我编辑类型的字典Dictionary
  • 是否可以使用 CRC 进行基本的纠错?

    我知道使用 CRC 的全部目的是进行错误检测 但我听到有人说它除了错误检测之外还可以用于进行基本的错误纠正 我很好奇是否是这样 如果是的话 它的威力有多大 我的意思是 我们通常将 CRC 称为能够执行 x 位检测 但我很好奇它是否能够执行
  • Java中如何从域名获取IP地址?

    我正在编写一个需要 IP 地址的应用程序 我有一个域名 我想知道如何从中获取 IP 地址 例如 www girionjava com 如何通过Java编程获取该网站的IP地址 谢谢 InetAddress giriAddress java
  • 箭头键输入代码在 tkinter 中不起作用

    以下是我的简短脚本 当按住这些箭头键时 它的意思是从右向左和向上打印 但我不知道为什么它不起作用 import Tkinter as tk right False left False up False def keyPressed eve
  • php-ga:如何识别自然流量?

    我正在做所有的 Google Analytics 服务器端工作 但 GA 仅跟踪直接或推荐 而且我不知道如何跟踪有机 这是一段可以直接获取或引用的代码 Campaign is used for the referrals If not in
  • 编译 create-react-app 时出现构建错误

    我是 Reactjs 的新手 正在开始学习它 我一直在尝试启动一个基本的 hello world 程序 但它在编译级别失败 使用 create react app hello world 创建了一个启动 hello word 程序 它给了我
  • 播放 YouTube 视频时出现错误“网络 [400] 出现问题”

    我正在使用 Android You tube API 播放 you Tube 视频 某些 URL 工作正常 但在某些 URL 中 我在屏幕上发现错误消息 显示 网络出现问题 400 点击重试 互联网已连接 请帮助我 提前致谢 This li
  • 如何在 Swift 中将十进制数转换为二进制数?

    如何在 Swift 中将 Int 转换为 UInt8 例子 我想将数字 22 转换为 0b00010110 var decimal 22 var binary UInt8 What should I write here 您可以将十进制值转
  • 我们如何从远程资源管理器中删除 ssh 目标

    远程资源管理器侧边栏有一个明显的图标 用于添加新目标 但我找不到用于删除或编辑目标的选项 就我而言 服务器的 IP 经常更改 因此它们只是继续在侧边栏中添加 现在有清理方法 目标是否存储在我可以手动编辑的文件中 您可以通过编辑删除或编辑它
  • 合并不同维度 r 的列表元素[重复]

    这个问题在这里已经有答案了 我有一个 df df data frame year c rep 2018 4 rep 2017 3 Area c 1 4 1 3 P 1 7 N 1 7 我想按年份将其拆分 然后再次将所有内容合并在一起 以便我
  • 绘制圆角矩形时出现透明度问题

    我正在尝试使用我在教程中找到的一些代码绘制带圆角的矩形 我稍作修改 Rounded rectangle algorithm copied from http ju outofmemory cn entry 18060 def round c