QT擷取螢幕的實現
轉自:http://blog.csdn.net/dansin/article/details/259990
作業系統:ARM-LINUX
圖形使用者介面:Qtopia
圖形開發庫:QT
Qtopia是Trolltech公司面向嵌入式Linux的綜合應用平臺。Qtopia包含完整的應用層、靈活的使用者介面、視窗操作、應用程式啟動程式以及開發框架。另外Qtopia基於QT/Embedded的C++類庫,擁有統一的應用程式程式設計介面,支援多工管理,實用性強。
Qt是Trolltech公司開發的一個多平臺的C++圖形使用者介面應用程式框架,它提供給應用程式開發者建立藝術級的圖形使用者介面所需的所用功能。Qt是完全物件導向,很容易進行擴充套件,並且允許真正的元件程式設計。Qt同時也是流行的Linux桌面環境KDE 的基礎。
本文闡述了一個在Qtopia下擷取螢幕的方法,實際上Qtopia和QT都支援幀緩衝技術,我們可以將幀緩衝的資料讀出來即為螢幕資料。但是這種方法需要對裝置驅動的瞭解,而且實現起來不那麼方便。這裡介紹利用QT庫中自帶的grabWidget與grabWindow函式擷取螢幕的方法。
兩個函式的原型如下:
QPixmap QPixmap::grabWindow ( WId window, int x=0, int y=0, int w=-1, int h=-1 )
WId表示被擷取視窗的ID號;
x,y表示擷取範圍的起始作標;
w,h分別表示擷取範圍的寬度和高度,如果為-1,則表示全部擷取。
QPixmap QPixmap::grabWidget ( QWidget * widget, int x=0, int y=0, int w=-1, int h=-1 )
widget表示被擷取視窗的畫布部分,其餘引數同grabWindow
下面這段程式碼實現了當前整個視窗的擷取。
QPixmap pixmap;
//QT庫中的圖形類,可以處理QT支援的所有圖形型別,如JPG,BMP等
QPixmap pix;
pix=pixmap.grabWindow(this->winId(),0,0,-1,-1);
//this->winId()為獲得當前視窗ID
if(pix.isNull())
{
QMessageBox::information(this,"error","grab Screen failed",QMessageBox::Ok);
}
else
{
if(pix.save( "/tmp/grab.bmp", "BMP" )==false)
{
QMessageBox::information(this,"right","save error",QMessageBox::Ok);
}
else
QMessageBox::information(this,"Grab","bitmap saved as /tmp/grab.bmp",QMessageBox::Ok);
}
將grabWindow改為grabWidget即可實現畫布資料的採集。
相關文章
- 螢幕擷取程式Ashampoo SnapYa! v1.53
- Android三種方式擷取任意介面螢幕Android
- QT居中螢幕顯示QT
- 滑鼠螢幕取詞技術的原理和實現 (轉)
- 在RFT中如何擷取螢幕影像並儲存到檔案中?
- 直播平臺軟體開發,完整擷取整個螢幕的截圖方式
- Qt:Qt自適應高解析度螢幕QT
- Qt視窗螢幕居中顯示QT
- Java及Jquery獲取螢幕解析度的實現程式碼JavajQuery
- iOS 螢幕錄製實現iOS
- javascript獲取螢幕的尺寸JavaScript
- 【QT】QT如何讓視窗放置在螢幕正中間QT
- 如何用Chrome自帶的截圖功能擷取超過一個螢幕的網頁Chrome網頁
- 螢幕取詞核心內幕 (轉)
- 螢幕取詞技術實現原理與關鍵原始碼原始碼
- 如何使用 gnome-screenshot 截圖命令來擷取螢幕、視窗或指定區
- selenium實現螢幕截圖
- Qt 把窗體顯示在螢幕的中心QT
- JS獲取螢幕大小JS
- Qt視窗在螢幕上居中顯示QT
- css實現的字串擷取程式碼例項CSS字串
- 如何實現共享螢幕標註功能?
- android 螢幕圓角實現方法Android
- VC實現螢幕變暗效果 (轉)
- 滑鼠螢幕取詞 原理 (轉)
- Qt5.12視窗螢幕居中顯示QT
- js實現的擷取指定長度字串程式碼JS字串
- jQuery實現的擷取指定長度字串程式碼jQuery字串
- 如何遠端投屏實現螢幕共享
- Android 5.0+ 螢幕錄製實現Android
- C# 實現螢幕鍵盤 (ScreenKeyboard)C#
- 用Delphi實現遠端螢幕抓取 (轉)
- 用VB實現螢幕陰暗操作 (轉)
- 用JS實現簡單的螢幕錄影機JS
- javascript如何獲取電腦螢幕的尺寸JavaScript
- 125 列舉實現PHP擷取中文不亂碼的實現方法PHP
- wasm + ffmpeg實現前端擷取視訊幀功能ASM前端
- Android Lollipop (5.0) 螢幕錄製實現Android