使用 QtWebEngine 将图像保存到磁盘

Posted

技术标签:

【中文标题】使用 QtWebEngine 将图像保存到磁盘【英文标题】:Using QtWebEngine to save images to disk 【发布时间】:2017-05-23 05:42:23 【问题描述】:

我希望能够加载网页 URL 并将页面上的图像保存到磁盘。

对于非图像,我可以简单地在所需的 URL 上使用 QWebEngineView.load,它会触发 QWebEngineProfile.downloadRequested,我可以在其中指定文件路径并接受下载。但是,图像只是显示在浏览器本身中并绕过 downloadRequested。

它不一定要优雅,但页面使用身份验证,并且 .load 似乎可以传递该信息。

【问题讨论】:

【参考方案1】:

您可以在加载任何内容之前将QWebEngineUrlRequestInterceptor 安装到页面的配置文件中,并使用QWebEngineUrlRequestInfo::resourceType() 来查看所请求的资源是否是图像。如果是图片,您也可以从QWebEngineUrlRequestInfo 获取其 URL 并下载。

【讨论】:

【参考方案2】:

好吧,我现在找到了一种解决方法...在 Qt 5.8 中,QWebEnginePage 有一个保存功能,可以为当前加载的网页发出下载...所以您只需使用 QWebEngineView.load 导航到图像 URL然后使用 QWebEnginePage.save

【讨论】:

以上是关于使用 QtWebEngine 将图像保存到磁盘的主要内容,如果未能解决你的问题,请参考以下文章

Qt5 部署的 QtWebEngine 项目不播放 Html5 视频

使用 Excel vba,将 Web 图像保存到磁盘

在 openCV 中快速将图像保存到磁盘

QtWebEngine 到嵌入式 linux 交叉编译失败

Qt5.9 WebEngine 概述

使用 QtWebEngine 退出时 QT 崩溃