用什么语言可以编写一个快速程序来截取屏幕截图并可能模拟按键?有没有简单的方法来自动截图的拍摄?
我有一个动画/交互式Flash电影,是一个演示文稿。我想在按下特定键后进行截图。
最终效果是我可以打印的一组截图......基本上捕捉了闪现演示文稿中的关键时刻。
用什么语言可以编写一个快速程序来截取屏幕截图并可能模拟按键?有没有简单的方法来自动截图的拍摄?
我有一个动画/交互式Flash电影,是一个演示文稿。我想在按下特定键后进行截图。
最终效果是我可以打印的一组截图......基本上捕捉了闪现演示文稿中的关键时刻。
我已经用C#写了这个,没有太多麻烦。这里的大部分代码:
using (Bitmap bitmap = new Bitmap(bitmapSize.Width, bitmapSize.Height, PixelFormat.Format24bppRgb))
using (Graphics graphics = Graphics.FromImage(bitmap))
{
graphics.CopyFromScreen(
new Point(0, 0),
new Point(0, 0),
bitmapSize);
bitmap.Save(filename, ImageFormat.Png);
}
我会建议编写一个托管浏览器控件的应用程序。然后,您可以让浏览器控件显示SWF,并且您的应用程序将知道需要捕获的屏幕部分的确切坐标。这样可以避免必须捕获整个屏幕或整个窗口,以后可能需要裁剪。
这很酷。我从来没有做过C#......也许是时候尝试一下了! :) – milesmeow 2010-03-01 04:25:57
我确定有办法,但这是我的想法。你可以使用像ffmpeg这样的工具将你的电影帧转换成图片。从FFMPEG的手册页
ffmpeg -i foo.avi -r 1 -s WxH -f image2 foo-%03d.jpeg
这将从视频中提取每秒一个视频帧,并且将它们输出文件中名为foo-001.jpeg,FOO-002.jpeg等 图像将被重新调整以适应新的WxH值。
如果您只想提取有限数量的帧,可以将上述命令与-vframes或-t选项 结合使用,或者结合使用-ss从特定时间点开始提取。
在文件名称中的数字“模拟”按键,所以如果你提取每帧1秒,并且要“压”在30秒的关键,使用的文件名与foo-030.jpeg
这是一个很好的解决方案,如果我有一个视频,并希望采取框架。如果我想要这样做,我会记住这一点。 – milesmeow 2010-03-01 04:25:02
你的Flash电影也是一个“视频”。 – ghostdog74 2010-03-01 04:52:09
我们在谈论.flv或.swf的吗?我有一个互动的.swf文件。 – milesmeow 2010-03-04 14:56:50
有这是我最近发现的一个免费工具,用于捕捉屏幕部分,它显然是用java编写的。
真的很好的问题,相当有用! – JosephDoggie 2015-01-30 21:24:24