当前位置: 首页 > 面试题库 >

WinAPI的PIL和位图

澹台景山
2023-03-14
问题内容

我有使用winapi制作窗口截图的代码。然后,我必须将图像保存到磁盘,然后再次将其从磁盘加载到内存PIL。是否可以立即进行任何操作而无需保存到磁盘以在PIL中传递此位图。

import win32gui, win32ui, win32con
import Image

win_name='Book'
bmpfilenamename='1.bmp'
hWnd = win32gui.FindWindow(None, win_name)
windowcor = win32gui.GetWindowRect(hWnd)
w=windowcor[2]-windowcor[0]
h=windowcor[3]-windowcor[1]
wDC = win32gui.GetWindowDC(hWnd)
dcObj=win32ui.CreateDCFromHandle(wDC)
cDC=dcObj.CreateCompatibleDC()
dataBitMap = win32ui.CreateBitmap()
dataBitMap.CreateCompatibleBitmap(dcObj, w, h)
cDC.SelectObject(dataBitMap)
cDC.BitBlt((0,0),(w, h) , dcObj, (0,0), win32con.SRCCOPY)
dataBitMap.SaveBitmapFile(cDC, bmpfilenamename)

#dcObj.DeleteDC()
#cDC.DeleteDC()
#win32gui.ReleaseDC(hWnd, wDC)

im=Image.open(bmpfilenamename)
im.load()

问题答案:

注释掉这一行:

dataBitMap.SaveBitmapFile(cDC, bmpfilenamename)

并添加以下内容:

bmpinfo = dataBitMap.GetInfo()
bmpstr = dataBitMap.GetBitmapBits(True)
im = Image.frombuffer(
    'RGB',
    (bmpinfo['bmWidth'], bmpinfo['bmHeight']),
    bmpstr, 'raw', 'BGRX', 0, 1)

[来自另一个SO问题]



 类似资料:
  • 问题内容: 我已经使用PIL打开了图像,因为 在上面画一些文字 然后将其另存为 用pygame.image打开它 我只想不保存就做。可以吗?保存然后加载需要大量时间(0.12秒,是的,因为我有多个需要此操作的图像,因此需要更多时间)。可以超越那种保存方法吗? 问题答案: 您可以使用中的功能。根据文档,以下内容应该起作用:

  • 我想找一份工作。gif动画在带有按钮的图片旁边工作。但我似乎遇到了一个问题,我正在导入这些模块“导入Tkinter”和“从PIL导入Image,ImageTk,ImageSequence”,但是,一旦我创建了“导入Tkinter”——“从Tkinter导入*”,它说Tkinter没有定义,我已经搜索了。。搜索。。。。我无法为我的死亡找到解决办法。我必须使用“from Tkinter import*

  • PIL

    PIL:Python Imaging Library,已经是Python平台事实上的图像处理标准库了。PIL功能非常强大,但API却非常简单易用。 安装PIL 在Debian/Ubuntu Linux下直接通过apt安装: $ sudo apt-get install python-imaging Mac和其他版本的Linux可以直接使用easy_install或pip安装,安装前需要把编译环境

  • PIL

    PythonWare公司提供了免费的图像处理工具包PIL(Python Image Library),该软件包提供了基本的图像处理功能,如:改变图像大小,旋转图像,图像格式转换,色场空间转换,图像增强,直方图处理,插值和滤波等等。虽然在这个软件包上要实现类似MATLAB中的复杂的图像处理算法并不太适合,但是Python的快速开发能力以及面向对象等等诸多特点使得它非常适合用来进行原型开发。 在PIL

  • 问题内容: 尝试从golang调用GetVolumeInformation函数。要获取卷名。 使用api的规范: 使用代码: …最后有错误:( 不理解,Google无法帮助调用winapi函数和returng字符串作为结果。 谢谢。 问题答案: 包裹不安全 不安全的软件包包含绕过Go程序的类型安全的操作。 类型指针 指针表示指向任意类型的指针。指针类型有四个特殊操作,而其他类型则不可用。 1)任何

  • 实例联系 图片转 ASC II 码 原理: http://www.jave.de/image2ascii/algorithms.html 示例代码:https://github.com/kxxoling/image2ascii 图片相似度计算 图片相似度计算&索引

  • 问题内容: 我正在尝试安装用于Python的库。我尝试下载适用于Windows的可执行安装程序,该安装程序可以运行,但表示找不到Python安装。然后尝试注册(http://effbot.org/zone/python- register.htm)Python ,但是脚本说它无法注册(尽管密钥出现在我的注册器中)。 然后,我尝试下载源代码包:运行setup.py构建,并且可以运行,但是在运行set

  • 更新: 我得到以下错误: ...newimg1.save(“img1.png”)文件“C:\python27\lib\site-packages\pil\image.py”,第1439行,在save save_handler(self,fp,filename)文件“C:\python27\lib\site-packages\pil\pngimageplugin.py”中,第572行,在_save