群里的小伙伴問起了如何用LabVIEW去實現(xiàn)截屏?那么就去實現(xiàn)一下咯。
關于截屏這里主要討論三個方面:
1. 純粹的截取某個VI的前面板
2. 截取整個電腦桌面
3. 截取指定的矩形區(qū)域
1. 截取VI前面板
這個需求很簡單,只需調(diào)用VI的 FP.Get Image 方法就可以獲取前面板的圖像數(shù)據(jù)了,然后將其寫入到圖片文件中,如下圖所示:
2. 截取整個桌面
這個需求也不難,都知道鍵盤上有一個截屏按鍵“PrtSc”,按下該鍵就可以截取整個桌面并將圖像數(shù)據(jù)保存到剪貼板中,那么我們只用模擬按下該按鍵并從剪貼板中讀取圖像數(shù)據(jù)將其保存到文件中即可。
查閱資料發(fā)現(xiàn)可以使用 User32.dll庫中的 keybd_event() 函數(shù),如下圖所示:
其中提到該函數(shù)已經(jīng)被取代,推薦使用SendInput函數(shù)(感興趣的自行嘗試),這里演示keybd_event函數(shù)來解決。
第一個參數(shù)需要指定虛擬密鑰代碼,這里需用用到 打印屏幕鍵PrtSc,如下圖所示:
第二個參數(shù)是密鑰的硬件掃碼代碼,一般置為0,感興趣可自行搜索不同按鍵對應的硬件掃碼碼,比如'A'~'Z'如下圖所示,當鍵按下時產(chǎn)生Make碼,當按鍵釋放時產(chǎn)生Break碼。
第三個參數(shù)一般為0或2,0表示按下,2表示釋放;
第四個參數(shù)是與按鍵關聯(lián)的一些附加值,一般也為0;
以上參數(shù)詳細內(nèi)容感興趣請自行搜索深入了解,模擬 PrtSc 按鍵按下實現(xiàn)如下圖所示:
接下來從剪貼板中讀取圖像數(shù)據(jù)并保存到文件中即可:調(diào)用Application的Clipboard.Get Image方法獲取圖像數(shù)據(jù),然后再調(diào)用 Write PNG File.vi寫入文件 (當然這里也可以寫入其它格式文件中,如jpg,bmp等),如下圖所示:
上述功能也可以通過.net(System.Windows.Forms.Clipboard和System.Drawing.Imaging.ImageFormat)來實現(xiàn)如下圖所示:
個也就很簡單了,只需對圖像數(shù)據(jù)做個簡單處理即可(Draw Flattened Pixmap.vi 和 Picture to Pixmap.vi),如下圖所示
3. 截取指定矩形區(qū)域
截取整個桌面搞定了,這個也就很簡單了,只需對圖像數(shù)據(jù)做個簡單處理即可(Draw Flattened Pixmap.vi 和 Picture to Pixmap.vi),如下圖所示:
審核編輯:湯梓紅
-
LabVIEW
+關注
關注
1959文章
3651瀏覽量
321674 -
截屏
+關注
關注
0文章
11瀏覽量
8706 -
函數(shù)
+關注
關注
3文章
4271瀏覽量
62274
原文標題:關于LabVIEW如何實現(xiàn)截屏
文章出處:【微信號:LabVIEW QT 修煉之路,微信公眾號:LabVIEW QT 修煉之路】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論