smi*_*hra 7 selenium python-imaging-library python-2.7 selenium-webdriver
我有一个用 Selenium Builder 记录的 python 脚本,它使用以下内容获取网页的完整浏览器屏幕截图:
fileName = "Screenshot1.png"
webDriverInstance.save_screenshot(fileName)
Run Code Online (Sandbox Code Playgroud)
文件大小约为 3.5 MB,因为它是一个很长的可滚动页面,我需要完整的浏览器屏幕截图。我需要一种方法来压缩保存的屏幕截图,或者将它们保存为较小文件大小的 PNG 图像,以便我可以使用另一个 Python 脚本(使用 smtplib)在同一电子邮件中附加和发送几个这样的屏幕截图。
我试过这个:
fileName = "Screenshot1.png"
foo = Image.open(fileName)
fileName2 = "C:\FullPath\CompressedImage.png"
foo.save(fileName2, "PNG", optimize = True)
Run Code Online (Sandbox Code Playgroud)
但是,这似乎不起作用。Screenshot1.png 和 CompressedImage.png 这两个文件的大小相同(大约 3.5 MB)。
我用 save 方法尝试了几个选项,但它们似乎都不起作用。运行脚本时我没有收到任何错误,但文件大小也没有减少。
foo.save(fileName2, "PNG", optimize = True, compress_level = 9)
foo.save(fileName2, "PNG", optimize = True, quality = 20)
Run Code Online (Sandbox Code Playgroud)
我正在使用 Python 2.7。有什么建议?
我看到两个选项,您都可以使用PIL给定的库来实现,例如 RGB 图像。
1 \xe2\x80\x93 降低图像分辨率(因此质量 \xe2\x80\x93 您可能不希望如此)。使用PIL提供的Image.thumbnail()or方法。Image.resize()
2 \xe2\x80\x93 缩小图像的颜色范围(数量colors会相应影响文件大小)。这是许多在线转换器会做的事情。
img_path = "img.png"\nimg = Image.open(img_path)\nimg = img.convert("P", palette=Image.ADAPTIVE, colors=256)\nimg.save("comp.png", optimize=True)\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
10717 次 |
| 最近记录: |