wxPython 的 wx.Image 和 PIL 的Image 一个是主流gui库,一个是主流图像处理库(很多图像相关的库都会用它为基础库),做 python gui 程序这两个库中的图像对像互相转换是必定会碰到的,两者会经常混合着用。 因为两个库的版本不一致,相互间的转换方法常有变化。下面写成两个函数,方便调用。

       def PilImage2WxImage(self,pilImage:PIL.Image.Image):'''转换 PIL Image 为 wxPython Image:param pilImage: PIL.Image.Image:return: wx.Image'''wxImage = wx.Image((pilImage.size[0], pilImage.size[1]), pilImage.convert("RGB").tobytes())return wxImagedef WxImage2PilImage(self, wxImage:wx.Image):'''转换 wxPython Image 为 PIL Image 对象:param wxImage: wx.Image 实例:return: PIL.Image.Image'''from PIL import Image# wxImage 的 GetData方法返回图像的字节码,通过bytes强制转换,可以直接作为frombytes的参数。pilImage = Image.frombytes('RGB',(wxImage.GetWidth(), wxImage.GetHeight()),bytes(wxImage.GetData()))# pil.show()return pilImage

从 PIL Image 原来有个方法 fromstring 可以将 wxImage 转化过来,但最新版本这个方法被取消了,需要用 frombytes 替代。 但是 wxImage 的 GetData() 方法默认返回的是PyObject对象,不是 bytes ,没法直接用。 实际上看这个方法说明,内部就是返回的bytes 只是,所以转换一下就能用了。

wxPython Image PIL Image 之间的转换方法相关推荐

  1. java代码中fastjson生成字符串和解析字符串的方法和javascript文件中字符串和json数组之间的转换方法...

    1.java代码中fastjson生成字符串和解析字符串的方法 List<TemplateFull> templateFulls = new ArrayList<TemplateFu ...

  2. python fromhex_Python hexstring-list-str之间的转换方法

    在Python操作数据内容时,多数情况下可能遇到下面3种类型的数据处理: hexstring 如:'1C532145697A8B6F' str 如:'\x1C\x53\x21\x45\x69\x7A\ ...

  3. [转载] python hex转字符串_Python hexstring-list-str之间的转换方法

    参考链接: Python hex() 在Python操作数据内容时,多数情况下可能遇到下面3种类型的数据处理: hexstring 如:'1C532145697A8B6F' str 如:'\x1C\x ...

  4. python汉字转到ascii码_python中ASCII码字符与int之间的转换方法

    ASCII码转换为int:ord('A') 65 int转为ASCII码:chr(65) 'A' 题目内容: 实现一个凯撒密码的变种算法,对输入字符串进行加解密处理 把字母a-z分别循环对应为相距13 ...

  5. linux音频文件格式转换,Linux下常见音频格式之间的转换方法

    下面简单介绍下Linux环境常见音频格式之间的转换方法: MP3 相关工具: lame OGG 相关工具: vorbis-tools APE 相关工具: mac FLAC 相关工具: flac WAV ...

  6. 常用进制以及进制之间的转换方法

    常用进制以及进制之间的转换 常用进制 初学计算机编程,进制转换,是一个让人很头疼的一关,但还是必须要掌握.接下来给大家带来一些简单的进制转换方法. 进制呢,实际就是进位计数制,常用的进制有二进制,八进 ...

  7. list与array之间的转换方法总结

    list与array之间的转换方法总结 一.List转数组 方法一.使用for循环 //要转换的list集合 List testList = new ArrayList(){{add("aa ...

  8. linux 字符串时间转换,Linux C/C++时间字符串与time_t之间的转换方法(转)

    js 获取小数点位数方法及 字符串与数字之间相互转换方法 1.获取小数点位数方法 a. 使用 js 中 subsrting,indexOf,parseFloat三个函数,代码如下: var s = & ...

  9. MFC的CWnd和HWND之间互相转换方法

    句柄是一个32位的数,是在WINDOS中的一个资源标示符,相当于c里面的指针. 窗口类就是CWnd,窗口句柄就是HWND.CWnd和HWND之间互相转换代码如下:     CWnd *pWnd;    ...

最新文章

  1. 使用startForeground让android服务前台运行
  2. 数学建模【建模竞赛与论文写作】
  3. 如何在ASP.NET Core程序启动时运行异步任务(1)
  4. java算法:冒泡排序
  5. 【CodeForces - 897D】Ithea Plays With Chtholly (交互题型,贪心,思维构造,题目信息)
  6. 企业微信发布全国远程办公大数据:这些地方的企业最爱交流
  7. 【入门篇】接口自动化测试
  8. 51单片机入门——红外通信
  9. 如何判断患者服用的温度敏感性药品依旧安全有效?
  10. python——【1】gzip压缩文件
  11. 前世回眸,今生结缘,滚滚红尘,谁人可依
  12. 计算机动画制作 课件,第四章 计算机动画的制作与编辑-课件(PPT).ppt
  13. [ 电子商务 ] 解读 Ad Network、Ad Exchange、DSP、SSP、RTB 和DMP 是什么?
  14. 从普通程序员到估值上亿的公司老板,他只用了1年!
  15. OLED有哪些优劣势?
  16. 数据中心架构,如何节省运营成本,机房冷却方面减少压力?
  17. WPF自定义控件中报“设置属性“System.Windows.ResourceDictionary.Source”时引发了异常。”,...
  18. 图扑数字孪生智慧社区,助力社区数字化转型
  19. yu bie diu
  20. CodeForces 520B Two Buttons

热门文章

  1. android手机QQ尾巴修改(QQ for Pad)
  2. java rxjava_RxJava 入门
  3. python ljust 中文_Python为文档批量注音(生僻字歌词为例)
  4. python json.loads_Python:json.loads返回前缀为'u'的项目
  5. 如何寻找优质淘宝客来推广自己的店铺
  6. 名侦探白洞(二):办公室“神秘人”事件
  7. 每个人心中的那一首歌
  8. c语言解析json代码举例,CJSON 实例
  9. 攻读计算机专业博士,范文:计算机专业攻读博士(2)
  10. angularjs 点击div外面,隐藏该div