微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 Python 中向 Growl 添加动态图标 OpenCV 图像

如何解决在 Python 中向 Growl 添加动态图标 OpenCV 图像

我向同样使用 OpenCV 的 Python 应用程序添加了 Growl 通知。基本的工作正常:

image = open('image.png','rb').read()

growl.notify(
        noteType = "Messages",title = "Title",description = "Description",icon = image,sticky = False,priority = 1,)

图像只是一个普通的旧 PNG。

接下来,我尝试制作一个自定义图标,在其中向该 PNG 添加一些文本(仅数字)。经过一番搜索,得出了这个:

image = cv2.imread('image.png',0)
 cv2.putText(image,text='40',org=(10,10),fontFace= cv2.FONT_HERShey_DUPLEX,fontScale=0.2,color=(0,0),thickness=2,lineType=cv2.LINE_AA)

在咆哮通知之前调用,我收到此错误

  File "/usr/local/lib/python3.9/site-packages/gntp/notifier.py",line 133,in notify
    if icon:
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

我现在意识到 OpenCV 将其转换为某种数组。如何将此图像“转换”回 PNG 等,这是咆哮所期望的。我不希望每次都保存动态图像,但如果这是唯一的方法,我可以这样做。

我确信这可能是微不足道的,但对于我的初学者 opencv 和 python 知识来说,这对我来说并不明显。此外,该解决方案不需要基于 OpenCV。这只是我找到的第一个

解决方法

在您的 <PostSharpReadyToRunDisabled>True</PostSharpReadyToRunDisabled> 调用的这一行中:

growl.notify

icon = image, 应为 icon URL path

但是,看起来您创建的 image 实际上是一个数组,Python 在尝试查看它是否为“true”时不知道如何处理 here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。