问题标签 [screenshot]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
10442 浏览

ruby - 如何使用 ruby​​ 和 unix 服务器截取网页截图?

我正在尝试以编程方式创建大量网页的缩略图,这些网页托管在我自己的基于 ruby​​/rails 的网站上。

我希望能够编写一个独立的 ruby​​ 代码,看起来像这样:

我需要 awesome-screenshot-maker 库(及其依赖项)相当容易在 Linux、Solaris 和 Mac OS X 上构建。理想情况下,它将使用单个“gem install”命令进行安装。

我花了一个下午探索各种选项,包括Moz snap shooterwebkit2pngrbwebkitgtk。它们都在正确的区域,但似乎没有一个适用于所有三个平台。

如果我愿意从我的 Rails 应用程序(而不是网页)输出 PDF,RMagick 看起来是一个可能的选择,但这让我觉得很hacky。在 Mac OS X 上启动和运行 RMagic 和 imagemagick 也非常费力。

是否存在可以在三个平台上轻松设置的库?

0 投票
2 回答
2842 浏览

language-agnostic - 捕捉屏幕的最快方法是什么?任何语言

我需要非常快速地打印 Windows 应用程序的打印屏幕才能从中制作视频……我一直在使用 C#,但我对任何可以使这个过程更快的语言持开放态度。

我使用了许多技术:

  • .net 函数:Bitmap.CopyFromScreen()
  • GDI
  • Direct3d/DirectX

我获得的最快速度是使用 GDI,但我仍然每秒获得不到 10 张照片。我需要更多一点,至少20或30...

这么简单的操作竟然要求这么高,我觉得很奇怪。看起来好像使用更快的 cpu 并没有改变这种情况。

我能做些什么?是否可以使用 gdi 或其他东西直接捕获应用程序的绘图?或者甚至是更低级别的函数来捕捉被扔到显卡上的信息?

对此问题的任何说明将不胜感激。非常感谢

0 投票
6 回答
4423 浏览

actionscript-3 - 如何在服务器上生成 Flash swf 的屏幕截图?

我正在使用开源工具编写一个 Flash 应用程序。我想将数据文件加载到应用程序中并在服务器上捕获舞台的屏幕截图。唯一看起来神秘的部分是在服务器上运行应用程序。事实上,我什至不在乎它是否是在服务器和浏览器中运行的同一个应用程序——如果我可以使用 flash 阶段和绘图例程在服务器端生成图像,我很高兴。如果我必须深入研究弯曲,那很好。现在我根本找不到任何起点。

我收集到 Adob​​e 有一些可能符合要求的商业产品,但我想坚持使用开源、apache 和 linux。我知道使用 haxe/neko 可能会做到这一点,但如果可能的话,我想使用更多主流工具。我要求太多了吗?

编辑/澄清:非常感谢到目前为止的回复,但我认为我的描述有点混乱。我已经使用与建议的相同的 PNGEncoder 类编写了实际的舞台抓取内容。问题实际上是在服务器端运行 swf。我不想让客户端自己截屏,因为这打开了客户端恶意提交与舞台上的内容不对应的截图的可能性,即我不希望用户上传色情. 如果我可以在服务器上运行 actionscript 代码,那么我可以从我的数据文件生成屏幕截图并确保屏幕截图与数据匹配,但我不知道如何在服务器上运行 actionscript 或 swf。

0 投票
1 回答
5061 浏览

c# - 使用 C# 截取任何外部应用程序的屏幕截图

我们有一个 C# (WPF) 应用程序,我们想在其中截取我们启动的任意应用程序的屏幕截图(即,我们有一个对我们启动的进程的引用)。应用程序可能被最小化或在其他窗口后面,但我们仍然只想要单个应用程序的图像,而不是重叠像素。

我知道使用 BitBlt 或PrintWindow的典型 P/Invoke 解决方案大部分时间都可以工作,但在处理直接绘制到图形设备的 DirectX 或 OpenGL 应用程序时,这些解决方案会失败(我只得到黑色/透明像素)。我发现这篇文章是关于从 C# 中截取 Direct3D 应用程序的屏幕截图,所以我想我已经涵盖了这个案例。

所以我的问题是:

  1. 我将如何为 OpenGL 应用程序执行此操作?
  2. 确定要使用的适当方法(PW/DX/GL)的最简单方法是什么?
  3. 有没有一种通用的方法可以做到这一点?

对于#2,我是否只能检查可执行文件加载的模块并查看是否加载了 DirectX 或 OpenGL DLL/Assembly?

这只需要在 Windows XP 上运行(不是跨平台的,如果有此应用程序,也不会很快进入 Vista/7)。

0 投票
18 回答
340309 浏览

php - 网站截图

有没有办法在 PHP 中截取网站的屏幕截图,然后将其保存到文件中?

0 投票
7 回答
9598 浏览

screenshot - 如何以编程方式创建给定网站的屏幕截图?

我希望能够创建给定网站的屏幕截图,但该网站可能比屏幕上显示的要大。有没有办法我可以做到这一点?

目标是在 WinForms 应用程序中使用 C# 中的 .NET 执行此操作。

0 投票
4 回答
3132 浏览

python - 在没有应用程序注意的情况下以编程方式在窗口中截取屏幕截图

有多种方法可以截取 Windows 中正在运行的应用程序的屏幕截图。但是,我听说可以定制应用程序,以便它可以通过某些 Windows 事件处理程序在截取屏幕截图时注意到它?有什么方法可以截取屏幕截图以使应用程序无法注意到?(甚至可能在 VM 中运行应用程序,并从主机截取屏幕截图?)我更喜欢 Python 中的解决方案,但任何事情都可以。

0 投票
3 回答
1368 浏览

c# - 如何以编程方式获取最小化应用程序的屏幕截图?

我正在尝试获取最小化应用程序的屏幕截图,关于如何在 windows 下使用它的任何想法?我正在使用 C#

提前谢谢,何塞

0 投票
10 回答
15909 浏览

windows - 检测用户何时截取我的程序的屏幕截图

我正在编写一个 Windows 应用程序。我怎么知道什么时候截屏了?我读到了如何检测被按下的热键,但我更担心每隔 100 毫秒左右另一个程序对其进行截图的情况。也就是说,当有人创建另一个程序(比如使用 ImageGrab 的 python 程序,如另一篇文章中所述)时,我试图注意到它不断截取我的应用程序的屏幕截图并使用它们从中读取信息。

我不太关心阻止截屏 - 一旦注意到这种行为,我就可以禁止用户。

这可能吗?当任何应用程序截取屏幕截图时是否会发送 Windows 消息,例如 WM_HOTKEY?还是 Windows 只是使用最新绘制事件中的最新信息,然后直接将其返回给其他程序,而我的应用程序根本无法注意到?

0 投票
2 回答
825 浏览

iphone - 屏幕抓取中用于提交的 iphone facebook 图标

您认为将 Facebook 图标放在您的屏幕抓取列表中以供提交会违反苹果 sdk?