我想捕获具有特定分辨率的canvas元素的屏幕截图。我正在使用以下片段来捕获屏幕截图。此方法可行,但始终需要分辨率为1544px * 638px的屏幕截图。根据是什么(浏览器窗口或我的窗口屏幕)截屏。我正在使用Chrome浏览器。如何修改下面的代码以截取分辨率为500 * 325左右的屏幕截图。
我使用了set_window_size(500,325),并且得到了尺寸为750 * 135的屏幕截图
def capture_screenshot():
driver = LiveLibrary.get_webdriver_instance()
driver.set_window_size(500, 325)
canvas_element = driver.find_element_by_xpath("//canvas")
result = canvas_element.screenshot_as_png
with open('save.png', 'wb') as f:
f.write(result)
有人可以帮我这个忙吗?谢谢。
答案 0 :(得分:2)
您可以使用PIL中的Image.resize来调整屏幕截图的大小。喜欢:
from PIL import Image
import io
...
result = canvas_element.screenshot_as_png
image = Image.open(io.BytesIO(result))
imageResized = image.resize( (500,325), Image.ANTIALIAS)
with open('save.png', 'wb') as f:
imageResized.save(f , format='PNG')