这里使用Python win32包中的win32gui.ExtractIconEx方法来提取exe的图标,除了安装Python,还需要到这里下载Pywin。

第一份代码

将指定的a.exe图标保存为bmp格式:

import win32ui

import win32gui

large, small = win32gui.ExtractIconEx(r"c:/a.exe",0)

win32gui.DestroyIcon(small[0])

hdc = win32ui.CreateDCFromHandle( win32gui.GetDC(0) )

hbmp = win32ui.CreateBitmap()

hbmp.CreateCompatibleBitmap( hdc, 32, 32 )

hdc = hdc.CreateCompatibleDC()

hdc.SelectObject( hbmp )

hdc.DrawIcon( (0,0), large[0] )

hbmp.SaveBitmapFile( hdc, "save.bmp" )

ExtractIconEx方法返回大32*32,小16*16的两张图标的句柄。后面就根据这个句柄画图保存,这样出来的图片首先不是图标ico格式,其次背景是黑色的很难看。

第二份代码

用PyQt对图像做了处理,使之背景透明,并保持为ico格式。要使用PyQt,请到这里下载PyQt。代码如下:

import sys

import win32ui

import win32gui

from PyQt4 import QtCore

from PyQt4 import QtGui

class testWindow(QtGui.QMainWindow):

def __init__(self):

super(testWindow, self).__init__()

self.setGeometry(180.0, 130.0, 280.0, 400.0)

self.setMouseTracking(True)

large, small = win32gui.ExtractIconEx(r"C:/a.exe", 0)

win32gui.DestroyIcon(small[0])

self.pixmap = QtGui.QPixmap.fromWinHBITMAP(self.bitmapFromHIcon(large[0]), 2)

self.pixmap.save("a.ico","ico")

def bitmapFromHIcon(self, hIcon):

hdc = win32ui.CreateDCFromHandle(win32gui.GetDC(0))

hbmp = win32ui.CreateBitmap()

hbmp.CreateCompatibleBitmap(hdc, 32, 32)

hdc = hdc.CreateCompatibleDC()

hdc.SelectObject(hbmp)

hdc.DrawIcon((0, 0), hIcon)

hdc.DeleteDC()

return hbmp.GetHandle()

def paintEvent(self, event):

painter = QtGui.QPainter()

painter.begin(self)

painter.setRenderHint(QtGui.QPainter.Antialiasing)

painter.setPen(QtCore.Qt.NoPen)

painter.setBrush(QtGui.QBrush(QtGui.QColor(255.0, 255.0, 255.0, 255.0), QtCore.Qt.SolidPattern))

painter.drawRect(QtCore.QRect(0.0, 0.0, 280.0, 400.0))

painter.drawPixmap(QtCore.QRect(0.0, 0.0, 32.0, 32.0), self.pixmap)

painter.end()

if __name__ == "__main__":

app = QtGui.QApplication(sys.argv)

mainWindow = testWindow()

mainWindow.show()

app.exec_()

提取图标和上一份代码是一样的,在得到Bitmap后通过QtGui里的fromWinHBITMAP方法将bitmap转换成透明背景的QPixmap,然后就可以保存为ico格式的图标了。paintEvent方法重写了QMainWindow的方法,画图用而已。

python制作ico图标_用Python提取exe图标icon | 学步园相关推荐

  1. python制作音乐模块_用Python打造一个只属于你的专属音乐播放器,享受动手的快乐!...

    平常我们总是用爬虫爬取网页上的音乐,今天我们换个玩法,用Python制作一个独一无二只属于你的音乐播放器,小伙伴们觉得如何?如果觉得提议还不错,那就立即动手吧! 一.需要的库 pygame tkint ...

  2. 如何用python制作三维动画_用Python制作3D动画

    很多小伙伴可能不知道,在3D动画甚至电影制作的过程中,Python也在其中扮演了很重要的角色呢! 比如皮克斯的动画片一般使用Maya软件制作,并且流程中使用到了大量的Maya Python插件. 另外 ...

  3. python制作电脑软件_利用PYTHON制作桌面版爬虫软件(二)

    今天继续新的专题.主要讲解[利用PYTHON制作桌面版爬虫软件]下的如何实现界面功能(一).该讲主要包括以下三个内容:掌握如何编写主函数,运行界面. 了解pywin32模块. 如何用python识别Q ...

  4. python制作表白神器_用Python个女神做一个表白神器

    用Python给女神表白 情人节刚刚过去,但男同胞们对女神的暗恋愈加热烈,想尽一切办法表白,今天,咱们就用Python制作一个表白神器. 程序介绍 运用pygame制作一个小游戏,当女神用鼠标点击&q ...

  5. python制作阴阳师脚本_利用python制作一个阴阳师小游戏

    利用python制作一个阴阳师小游戏 发布时间:2020-11-27 13:59:49 来源:亿速云 阅读:84 这期内容当中小编将会给大家带来有关利用python制作一个阴阳师小游戏,文章内容丰富且 ...

  6. python制作手机壁纸_用Python生成自己独一无二的手机壁纸

    已经12月份了,马上就要过年了,要不要换一个喜气洋洋.洋洋洒洒.洒扫应对.对牛弹琴的手机壁纸呢? 今天小编给大家表演的节目是:用Python生成自己独一无二的手机壁纸. 首先我们需要选择一个现成的手机 ...

  7. python制作手机壁纸_用Python生成自己专属的手机春节壁纸

    ↑ 关注 + 置顶 ~ 有趣的不像个技术号 马上就要过年了,要不要换一个喜气洋洋.洋洋洒洒.洒扫应对.对牛弹琴的手机壁纸呢? 今天小五给大家表演的节目是:用Python生成自己独一无二的手机壁纸. 首 ...

  8. python制作pdf教程_学以致用:Python爬取廖大Python教程制作pdf!

    学以致用:Python爬取廖大Python教程制作pdf! python-tutorial-pdf 当我学了廖大的Python教程后,感觉总得做点什么,正好自己想随时查阅,于是就开始有了制作PDF这个 ...

  9. python制作电脑软件_利用PYTHON制作桌面版爬虫软件(一)

    抱歉,对长沙房地产数据的挖掘与分析[三],想了蛮久,觉得对自己的分析结果不是很理想.等我完善好了,我再发出来吧.今天继续开启新的一专题.主要讲解如何用PYTHON实现简单的桌面软件的制作. 题外话,我 ...

  10. python制作图片墙_利用python生成照片墙的示例代码

    PIL(Python Image Library)是python的第三方图像处理库,但是由于其强大的功能与众多的使用人数,几乎已经被认为是python官方图像处理库了.其官方主页为:PIL. PIL历 ...

最新文章

  1. 微信小程序 侧滑效果实现
  2. Linux网站架构系列之Apache----进阶篇
  3. springboot集成neo4j
  4. php对图像的各种处理函数代码小结
  5. 深入解读MySQL8.0 新特性 :Crash Safe DDL
  6. python 消息队列 sqlite_sqlite 数据存储 消息队列
  7. tkinter 菜单添加事件_tkinter学习教程(七)
  8. qemu核心机制分析-协程coroutine
  9. jinja2语法中{%raw%}和{{}}的等效替换
  10. 详解mybatis映射配置文件
  11. python文件writelines_python 写文件write(string), writelines(list)
  12. LinkedHashMap转对象
  13. algorithm头文件下的sort()
  14. 结束 Java、Python 之战,如何学习所有编程语言?
  15. [转]使用Git Submodule管理子模块
  16. 饿了吗!来点营养的-华为USG6000V防火墙超详细配置
  17. 辨认NPN三极管的三个管脚
  18. 升级opengl和显卡驱动_又更新了!英伟达OpenGL 4.4显卡驱动下载
  19. PSpice for TI和TINA-TI的区别
  20. linux 定时任务 非root,linux下的计划任务——只执行一次的定时任务,

热门文章

  1. QQ音乐MP3文件下载
  2. R语言求风险价值VaR Value at Risk
  3. 达索系统仿真Simulia——BMW宝马案例学习 | 达索系统百世慧®
  4. oracle+xquery函数,oracle_xquery介绍.doc
  5. bicq php,BICQ   1、首先 软件跟QQ和MSN有很多类似的地方。因为现在 用户群在使用 WEB(ASP,PHP,...) 256万源代码下载- www.pudn.com...
  6. 9寸触屏 电影中曝光诺基亚首款平板Z500
  7. 魔兽怀旧服怎么找不到服务器,魔兽世界怀旧服服务器连不上怎么办
  8. 家谱起源众说纷纭,专家揭开历史真相:这种说法比较靠谱!
  9. 如何使用 Unity制作微信小游戏,微信小游戏制作方案 最新完整详细教程来袭【持续更新】
  10. 方程组求解的直接法与迭代法实现