【发布时间】:2023-03-28 14:50:01
【问题描述】:
是否可以在允许用户选择网页的一部分并将所选区域呈现为图像的网站上创建功能?
它类似于“Cropper”桌面程序,但需要嵌入到网页中
使用 JS、flash、silverlight 或任何基于 Web 的工具听起来几乎是不可能的,但我只是想获得第二意见。谢谢
【问题讨论】:
标签: javascript html flash image crop
是否可以在允许用户选择网页的一部分并将所选区域呈现为图像的网站上创建功能?
它类似于“Cropper”桌面程序,但需要嵌入到网页中
使用 JS、flash、silverlight 或任何基于 Web 的工具听起来几乎是不可能的,但我只是想获得第二意见。谢谢
【问题讨论】:
标签: javascript html flash image crop
我确实研究过 JCrop 但那只是 适用于图像。要求 这里需要更多的东西 强大的。 您确实选择了一个 网页的一部分(使用 j 裁剪 样式覆盖 div 不太难 实施),然后该部分是 被剪掉了
出于安全原因,这一般是不可能的。
例如,只说火狐,看这里:
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 来生成屏幕截图。
不容易,甚至可能不适合您尝试做的事情。
【讨论】:
【讨论】: