getdibits

    0熱度

    1回答

    試圖將窗口的屏幕截圖作爲位圖。下面的代碼是創建一個大小合適的位圖,但每個像素都是黑色的。換句話說,GetDIBits將imageBuffer設置爲全0。 發佈的代碼爲每個在屏幕上打開並可見的記事本保存一個位圖。沒有任何斷言失敗。 的BITMAPFILEHEADER和實際寫入到一個文件中被省略,因爲最後的循環與斷言設置ImageBuffer的所有0的節目的GetDIBits,所以沒有必要點後,檢查代

    0熱度

    1回答

    我想使用GetDIBits加載位圖在C++中。下面是我使用的代碼: HBITMAP hBmp = LoadBitmap(hInstance, MAKEINTRESOURCE(id)); BITMAP BM; GetObject(hBmp, sizeof(BM), &BM); GLvoid* bits = NULL; BITMAPINFO bitmap_info; mems

    0熱度

    3回答

    使用的GetDIBits(以下代碼)不給我所需要的輸出:(gBit.bmp是一個1366×768的位圖是全白) #include <windows.h> #include <iostream> using namespace std; int main() {int i; HDC MemDC=CreateCompatibleDC(NULL); HBITMAP hBit=(HBITM

    0熱度

    1回答

    我正在C++中構建一個dll以導入到VB項目中。 dll公開了一個函數,它將通過Win Shell提取指定文檔的預覽圖像,然後將其寫入緩衝區以供VB應用程序使用。 到目前爲止,我能夠得到HBITMAP句柄沒有問題。我也能夠使用GetBitmapBits函數提取位圖數據。但是,這將不起作用,因爲需要位數據的對象需要它是獨立於設備的格式。 我讀過GetDiBits是用於此目的的函數,但我很難弄清楚如何

    0熱度

    1回答

    我可以使用GetDIBits加載當前窗口的顏色內容,但我不知道如何從一個位置加載圖像的顏色。有人能告訴我該怎麼做嗎? char str[256]; HDC hdc; HWND hDesktopWnd; HDC hDesktopDC; HDC hCaptureDC; HBITMAP hCaptureBitmap; BITMAPINFO bmi = {0};

    0熱度

    1回答

    前段時間我問過一個關於將hwnd保存爲ppm文件的問題。感謝一個計算器用戶,我解決了我的問題。我的工作正常,但我仍然有一個問題:紅色和藍色的顏色是顛倒的。 的代碼和我剛纔的問題,其中在這裏: hwnd to ppm issue 這裏是位圖信息數據: bi.biSize = sizeof(BITMAPINFOHEADER); bi.biWidth = w; bi.biHeight = -h;

    0熱度

    1回答

    我今天遇到的一個非常奇怪的問題。在MFC項目的VC6下運行代碼,它是黑屏,它完美的工作,並顯示桌面圖片,如果我拿出評論。然而,這些代碼在無限循環中執行,所以我嘗試減少內存複製和內存花費,如BitBlt和CreateCompatibleBitmap等。我不明白我的程序如何與這些註釋代碼相關。任何人都知道是什麼原因導致問題,爲什 HDC hdcDesktop = ::CreateDC("DISPLAY

    3熱度

    1回答

    我編寫了下面的代碼(C++ Win32)來捕獲遊戲窗口屏幕並從圖像中獲取像素顏色數組。函數autoB()完成這項工作。 然後我將結果數組繪製到我的窗口中,以便直觀地檢查我得到的結果。 問題是這個程序在我啓動計算機之後只能運行一次,在第一次「緩存」從遊戲中獲得的第一個截圖後,我總是得到相同的像素數組。即使我關閉並重新啓動程序,我也會得到相同的屏幕截圖。 遊戲並未使用DirectX在屏幕上繪圖,而且我

    0熱度

    1回答

    我有一個將hwnd保存爲ppm文件的功能。 此功能受msdn示例啓發。 msdn示例和我的功能都可以工作,但是...我有一個問題... 但首先,這裏是函數。 int CaptureAnImage(HWND hWnd) { HDC hdcWindow; HDC hdcMemDC = NULL; HBITMAP hbmScreen = NULL; RECT r

    0熱度

    1回答

    我剛剛意識到在GDI中有BITMAP,然後在GetDIBits的幾乎所有例子中都做了GetObject(hBmp, sizeof(BITMAP), &bmp);。但新填充的bmp在這裏有一個字段:bmBits 如果我已經在這裏有位圖的位,爲什麼我會再次撥打GetDIBits?使用CreateDIBSection創建位圖時 感謝, 阿里帆