如何从内存中保存webkit页面图像资源? [英] How to save webkit page image resources from memory?

查看:102
本文介绍了如何从内存中保存webkit页面图像资源?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我用python,gtk和webkit打开页面。现在 - 如何从该页面保存图像,而不从互联网上再次下载? 解决方案

这是一个python程序,可以保存一个渲染的图像网页: http://pastie.org/4572412



这应该是您感兴趣的主要部分:

  size = self.browser.mainFrame( ).contentsSize()
if width> 0:
size.setWidth(width)
self.browser.setViewportSize(size)

将虚拟浏览器视口渲染为图像。
image = QImage(self.browser.viewportSize(),QImage.Format_ARGB32)
paint = QPainter(image)#画家目标是我们的图片对象
self.browser.mainFrame() .render(paint)#Render浏览器窗口给画家
paint.end()
image = image.scaledToWidth(width)#确保图片是你想要的宽度
extension = os.path。 splitext(filename)[1] [1:]。upper()#将文件保存为您想要的图片扩展名
如果扩展名不在self.image_extensions中:
raise ValueError('filename'must a有效的扩展名为{0}。format(self.image_extensions))
image.save(filename,extension)

希望这有助于!


I open page with python, gtk, and webkit. Now - how to save image from that page without downloading it again from the internet?

解决方案

Here is a python program that will save a rendered web page to an image: http://pastie.org/4572412

This should be the section of primary interest to you:

    size = self.browser.mainFrame().contentsSize()
    if width > 0:
        size.setWidth(width)
    self.browser.setViewportSize(size)

    # Render the virtual browsers viewport to an image.
    image = QImage(self.browser.viewportSize(), QImage.Format_ARGB32)
    paint = QPainter(image) #Have the painters target be our image object
    self.browser.mainFrame().render(paint) #Render browser window to painter
    paint.end()
    image = image.scaledToWidth(width) #ensure the image is your desired width
    extension = os.path.splitext(filename)[1][1:].upper()  #save the file as your desired image extension
    if extension not in self.image_extensions:
        raise ValueError("'filename' must be a valid extension: {0}".format(self.image_extensions))
    image.save(filename, extension)

Hope this helps!

这篇关于如何从内存中保存webkit页面图像资源?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆