是否可以在允许用户选择网页的一部分的网站上创建一个功能,并将所选区域渲染为图像?
它类似于“Cropper”桌面程序,但需要嵌入网页
使用JS,flash,silverlight或任何基于网络的工具听起来几乎不可能,但我只想获得第二意见。感谢
答案 0 :(得分:0)
你试过JCrop吗? :http://deepliquid.com/content/Jcrop.html
这显示了php实现。
http://www.sanisoft.com/blog/2010/11/08/jcrop-demo-using-php/
http://www.cagintranet.com/archive/how-to-use-jcrop-from-within-an-application/
答案 1 :(得分:0)
我确实调查了JCrop,但仅限于此 适用于图像。要求 这里需要更多东西 强大。 你真的选择了一个 网页的一部分(使用j crop 风格叠加div,这不是太难 实施)然后那部分是 裁掉了
出于安全原因,这通常不是 。
例如,只是谈论Firefox,请看这里:
https://developer.mozilla.org/en/Drawing_Graphics_with_Canvas#Rendering_Web_Content_Into_A_Canvas
Mozilla的画布延伸了 drawWindow()方法。这种方法得出 DOM内容的快照 进入画布的窗口。
听起来不错!但是:
此功能仅适用于 使用Chrome权限运行的代码。 普通的HTML不允许这样做 页面。 Read why.
“阅读原因”链接中的注释:
//我们不能允许网络应用调用此功能,直到我们至少解决了这个问题 //跟踪潜在的安全问题:
// - 渲染跨域IFRAME然后提取结果
// - 呈现用户的主题,然后提取结果
// - 呈现本机匿名内容(例如,文件输入路径;
//应该允许滚动条
如果你真的确定使这项工作并且你有一个VPS /专用服务器,你可以通过控制浏览器服务器端来做到这一点(使用Selenium RC)捕获任意网页的屏幕截图,并将图像返回给浏览器。然后,用户可以从该图像中“裁剪”。
或者比Selenium RC更容易:您可以使用wkhtmltopdf中的wkhtmltoimage来生成屏幕截图。
不容易,甚至可能不适用于你想要做的事情。