将IFRAME内容转换为图像

时间:2013-01-07 18:37:40

标签: dart

我将一个URL提取到IFRAME中,现在想要捕获结果的缩略图,以便稍后向用户显示他们所遵循的链接。

void receiveHtml(Event e) {
  ...
  iframe.convertToImage... // <----- ????? How to do this?
}

IFrameElement iframe = query('#iframehtml') as IFrameElement;
...
iframe.on.load.add(receiveHtml);
...
iframe.src = url; // E.g. url='http://someplace.com/dir/'

在DART中是否有办法将iframe文档捕获到图像中? (然后我可以缩小到缩略图并存储以供日后使用)。

1 个答案:

答案 0 :(得分:2)

你不能在客户端做到这一点,至少不是没有iframe在同一个来源(“同一个网站”)。否则,这将带来安全风险,因为它为许多可能性打开了大门,例如用用户的银行帐户详细信息截取银行网站。

但是,您可以在服务器端执行此操作,但这并不容易。

您可以做的一件事就是安装webkit2png并让它制作网站截图。你可以这样称呼它:

import 'dart:io';

main() {
  Process.run('python', ['/path/to/webkit2png', 'http://google.com']).then((result) {
    // Here you can open and do whatever you want with the screenshots.
    // The files are placed in the current directory.
    print(new File('somescreenshot.png').readAsBytesSync());
  });
}