台灣最大程式設計社群網站
線上人數
1871
 
會員總數:240362
討論主題:186354
歡迎您免費加入會員
討論區列表 >> C# >> 對影片載圖
[ 變換順序 ]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
對影片載圖
價值 : 500 QP  點閱數:3778 回應數:6

樓主

Y.S
初學者
220 47
708 54
發送站內信

您好

近日,在寫C sharp 截取螢幕圖片的功能

爬了相關的文章

目前有一段可以執行的程式碼
[code]
private void button1_Click(object sender, EventArgs e)
{
int screenWidth = 0;

int screenHeight = 0;

for (int x = 0; x < Screen.AllScreens.Length; x++)
{

screenWidth += Screen.AllScreens[x].Bounds.Width;

}

for (int x = 0; x < Screen.AllScreens.Length; x++)
{

if (Screen.AllScreens[x].Bounds.Height > screenHeight)
{

screenHeight = Screen.AllScreens[x].Bounds.Height;

}

}

Size sz = new Size(screenWidth, screenHeight);

IntPtr hDesk = GetDesktopWindow();

IntPtr hSrce = GetWindowDC(hDesk);

IntPtr hDest = CreateCompatibleDC(hSrce);

IntPtr hBmp = CreateCompatibleBitmap(hSrce, sz.Width, sz.Height);

IntPtr hOldBmp = SelectObject(hDest, hBmp);

bool b = BitBlt(hDest, 0, 0, sz.Width, sz.Height, hSrce, 0, 0, CopyPixelOperation.SourceCopy | CopyPixelOperation.CaptureBlt);

Bitmap bmp = Bitmap.FromHbitmap(hBmp);

SelectObject(hDest, hOldBmp);

DeleteObject(hBmp);

DeleteDC(hDest);

ReleaseDC(hDesk, hSrce);


Clipboard.SetImage(bmp);

bmp.Dispose();
}[/code]

但在XP下,截取圖片時,只要是影片就會顯示成黑色的一塊

想請問在不關閉硬體加速跟Overlay的情況下 我該怎麼去截取影片檔的影像?

謝謝

本篇文章發表於2011-07-28 23:30
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
Various methods for capturing the screen

Trick: How to Capture Video Screen Shots
本篇文章回覆於2011-07-29 08:52
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

shinyo.her
捐贈 VP 給 shinyo.her 檢舉此回應
http://www.dotblogs.com.tw/puma/archive/2008/08/21/4967.aspx
本篇文章回覆於2011-07-29 09:42
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

chotofu
檢舉此回應
之前也遇過類似的問題
不過我是關閉硬體加速
To shinyo : 我有嘗試去編譯您的程式碼 撥放影片好像截不出圖來 樓主有試過了嗎?
這是截取的影像
本篇文章回覆於2011-07-29 14:11
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

Y.S
檢舉此回應
如樓上說說
在 xp 下,一、二樓所提供的方法,均無法截下 hardware overlay 的圖片(黑畫面)
本篇文章回覆於2011-07-30 16:31
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
你有看Trick: How to Capture Video Screen Shots 嗎? 他有提到在不關閉你說的HARDEARE(加速?)下, 可以先開一個Windows Media Player並播放影片, 然後再開你自己的影片播放程式, 這樣就可以以軟體方式去截圖。
本篇文章回覆於2011-07-31 09:51
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

Y.S
檢舉此回應
To: 展翔研究室
Trick: How to Capture Video Screen Shots 提供的方式在 Win7 可用
但在 WindowsXP 下還是失敗了,目標是找到在 WindowsXP 下也能執行的方法

圖片如下連結所示:
圖片
本篇文章回覆於2011-08-01 17:30
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
[ 變換順序 ]   
1

回覆
如要回應,請先登入.