使用libvirt抓取linux kvm虚拟机的缩略图
- 作者: 花落季16238097
- 来源: 51数据库
- 2022-08-12
import libvirt
import os
import uuid
try:
from PIL import Image
print("PIL")
except ImportError:
import Image
def handler(stream, buf, opaque):
fd = opaque
os.write(fd, buf)
THUMBNAIL_SIZE =(256, 256)
thumbnail = '/home/hcc/test/screenshot/test-' + str(uuid.uuid4())
command = "touch " + thumbnail
print(command)
os.system(command)
fd = os.open(thumbnail, os.O_WRONLY | os.O_TRUNC | os.O_CREAT, 0644)
try:
conn = libvirt.open('qemu:///system')
d1 = conn.lookupByName('test')
print(d1.info())
print(d1.name())
stream = conn.newStream(0)
d1.screenshot(stream, 0, 0)
stream.recvAll(handler, fd)
if os.path.getsize(thumbnail) == 0:
image = Image.new("RGB", THUMBNAIL_SIZE, 'black')
image.save(thumbnail)
else:
print("else")
im = Image.open(thumbnail)
im.thumbnail(THUMBNAIL_SIZE)
im.save(thumbnail,'PNG')
except libvirt.libvirtError:
try:
stream.abor()
except:
pass
else:
stream.finish()
finally:
os.close(fd)
推荐阅读
热点文章
Discord.py(重写)on_member_update 无法正常工作
0
Discord.py 在 vc 中获取用户分钟数
0
discord.py 重写 |为我的命令出错
0
Discord.py rewrite 如何 DM 命令?
0
播放音频时,最后一部分被切断.如何解决这个问题?(discord.py)
0
在消息删除消息 Discord.py
0
如何使 discord.py 机器人私人/直接消息不是作者的人?
0
(Discord.py) 如何获取整个嵌入内容?
0
Discord bot 尽管获得了许可,但不能提及所有人
0
Discord.py discord.NotFound 异常
0
