使用libvirt抓取linux kvm虚拟机的缩略图
发布时间:2020-12-17 17:10:20 所属栏目:Python 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 import libvirtimport osimport uuidtry: from PIL import Image print("PIL")except ImportError: import Imagedef handler(stream,buf,opaque): fd
以下代码由PHP站长网 52php.cn收集自互联网 现在PHP站长网小编把它分享给大家,仅供参考 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) 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) 以上内容由PHP站长网【52php.cn】收集整理供大家参考研究 如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |