2010-02-28 71 views
3

用什麼語言可以編寫一個快速程序來截取屏幕截圖並可能模擬按鍵?有沒有簡單的方法來自動截圖的拍攝?

我有一個動畫/交互式Flash電影,是一個演示文稿。我想在按下特定鍵後進行截圖。

最終效果是我可以打印的一組截圖......基本上捕捉了閃現演示文稿中的關鍵時刻。

+0

真的很好的問題,相當有用! – JosephDoggie 2015-01-30 21:24:24

回答

5

我已經用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,並且您的應用程序將知道需要捕獲的屏幕部分的確切座標。這樣可以避免必須捕獲整個屏幕或整個窗口,以後可能需要裁剪。

+2

這很酷。我從來沒有做過C#......也許是時候嘗試一下了! :) – milesmeow 2010-03-01 04:25:57

3

我確定有辦法,但這是我的想法。你可以使用像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

+1

這是一個很好的解決方案,如果我有一個視頻,並希望採取框架。如果我想要這樣做,我會記住這一點。 – milesmeow 2010-03-01 04:25:02

+2

你的Flash電影也是一個「視頻」。 – ghostdog74 2010-03-01 04:52:09

+1

我們在談論.flv或.swf的嗎?我有一個互動的.swf文件。 – milesmeow 2010-03-04 14:56:50

2

有這是我最近發現的一個免費工具,用於捕捉屏幕部分,它顯然是用java編寫的。

http://screenr.com/

相關問題