`

python截屏 内存泄露 解决办法

 
阅读更多
http://stackoverflow.com/questions/16575193/memory-leak-python-windows-7-screenshots


抓图步骤大致如下:
hwin = win32gui.GetDesktopWindow()
width = win32api.GetSystemMetrics(win32con.SM_CXVIRTUALSCREEN)
height = win32api.GetSystemMetrics(win32con.SM_CYVIRTUALSCREEN)
left = win32api.GetSystemMetrics(win32con.SM_XVIRTUALSCREEN)
top = win32api.GetSystemMetrics(win32con.SM_YVIRTUALSCREEN)
hwindc = win32gui.GetWindowDC(hwin)
srcdc = win32ui.CreateDCFromHandle(hwindc)
memdc = srcdc.CreateCompatibleDC()
bmp = win32ui.CreateBitmap()    
bmp.CreateCompatibleBitmap(srcdc, width, height)
memdc.SelectObject(bmp)
memdc.BitBlt((0, 0), (width, height), srcdc, (left, top), win32con.SRCCOPY)
bmp.SaveBitmapFile(memdc, file_name) # 'screenshot.bmp'


但是如果是用于屏幕监控的,那么经过一段时间的loop,将很快耗尽内存,原因是资源没有释放

释放资源:
win32gui.DeleteObject(bmp.GetHandle())
memdc.DeleteDC()
srcdc.DeleteDC()
win32gui.ReleaseDC(hwin, hwindc) 







PS:百度了半天也没找到解决方法,直接谷粉搜搜,老外程序员还是给力
分享到:
评论

相关推荐

    python调用DXGI实时快速截屏,是python截屏的最快版了

    是python截屏的最快版了大概2ms左右,可以用在游戏实时截屏中FPS上百没啥问题

    Python内存泄漏和内存溢出的解决方案

    主要介绍了Python内存泄漏和内存溢出的解决方案,帮助大家维护后台进程,感兴趣的朋友可以了解下

    Python-用于测量监视和分析在运行的Python程序中Python对象的内存行为的开发工具

    Development tool to measure, monitor and analyze the memory behavior of Python objects in a running Python application.

    Python跑循环时内存泄露的有效解决方法

    Python跑循环时内存泄露的有效解决方法。 内存泄漏是一种常见的问题,尤其在Python循环中运行长时间的程序时容易发生。以下是一些可能的解决方法: 使用生成器(Generator):生成器是一种特殊的迭代器,可以迭代...

    总结python 三种常见的内存泄漏场景

    不要以为 Python 有自动垃圾回收就不会内存泄漏,本着它有“垃圾回收”我有“垃圾代码”的精神,现在总结一下三种常见的内存泄漏场景。 无穷大导致内存泄漏 如果把内存泄漏定义成只申请不释放,那么借着 Python 中...

    Python跑循环时内存泄露的解决方法

    主要介绍了Python跑循环时内存泄露的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    谈谈如何手动释放Python的内存

    Python不会自动清理这些内存,这篇文章主要介绍了谈谈如何手动释放Python的内存,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。

    详解如何减少python内存的消耗

    Python 打算删除大量涉及像C和C++语言那样的复杂内存管理。当对象离开范围,就会被自动垃圾收集器回收。然而,对于由 Python 开发的大型且长期运行的系统来说,内存管理是不容小觑的事情。 在这篇博客中,我将会分享...

    粗略分析Python中的内存泄漏

    之前一直盲目的认为 Python 不会存在内存泄露, 但是眼看着上线的项目随着运行时间的增长 而越来越大的内存占用, 我意识到我写的程序在发生内存泄露, 之前 debug 过 logging 模块导致的内存泄露. 目前看来, 还有别的...

    记一次python 内存泄漏问题及解决过程

    内存泄漏的问题,也将是一件非常麻烦的事情了,而最近的一次代码中也碰到了这个问题,不过好在最后内存溢出不是我代码的问题,而是所用到的一个包出现了内存的问题,下面我通过一个简单的代码模拟出内存的问题,然后...

    Python出现segfault错误解决方法

    本文分析了Python出现segfault错误解决方法。分享给大家供大家参考,具体如下: 最近python程序在运行过程中偶尔会引发系统segfault的错误,而且是在不定期不同代码段时发生的,所以单步调试没办法确定是哪一行代码...

    Python实现截屏的函数

    Python实现截屏的函数 # -*- coding: cp936 -*- import time,Image import os, win32gui, win32ui, win32con, win32api def window_capture(dpath): ''''' 截屏函数,调用方法window_capture('d:\\') ,参数为指定...

    python写的自动截屏软件,并保存至本地图片

    软件为打开后自动隐藏,并自动产生图片到D盘photo文件夹中。自动删除旧图片(每秒保存1张,保存10张,从11删除第1张)非常稳定。

    win7安装python常见问题及其解决办法

    1.win7支持安装的最高版本是 Python 3.8.6 X64 ...2.安装python是提示 0x80072f7d 错误的解决办法 ①VC2015运行库下载及其安装 ②在Windows服务器上启用TLS 1.2及TLS 1.2协议 -启用协议后可以不安装运行库

    python内存管理机制

    内存管理,对于python这样的动态语言来说,是至关重要的一部分。它很大程度上决定了python的执行效率,对象的创建销毁,都涉及到内存的管理

    Python3进程内存分析器-用于运行python进程的内存分析器.zip

    Python3进程内存分析器-用于运行python进程的内存分析器.zip memory_analyzer 运行内存分析器不需要您停止进程或添加任何特殊的调试代码或标志。尽管内存分析器收集有关内存中对象的信息时您的过程(及其所有线程...

    python监控电脑 定时截屏上传到指定邮箱

    加入开机运行,便可在后台监控电脑 定时截屏上传到指定邮箱

    2023 python调用DXGI实时快速截屏 最快3ms

    是python截屏的最快版了大概3ms左右,可以用在游戏实时截屏中FPS上百没啥问题 DXGI急速截屏代码,亲测非常好用,试着截取500张,1920的分辨率,文件夹好没有反应过来已经被铺满了,可怕的是,每张都是8点多M的大小...

Global site tag (gtag.js) - Google Analytics