1
私はこのデバイスコンテキストを持っていますが、元のRGB値を失うことなく.bmp形式または別の形式で保存するにはどうすればよいですか?私はこのデバイスのコンテキストを持っていますが、オリジナルのRGB値を失うことなく、どのように.bmp形式で保存するのですか? thx!bmpファイルにスクリーンショットを保存するデバイスコンテキスト
LPRGBQUAD hex_color;
//HDC dc = GetDC(NULL);
HWND hWnd = GetDesktopWindow();
HDC hdc = GetDC(hWnd);
RECT rect;
GetWindowRect(hWnd, &rect);
int MAX_WIDTH = rect.right - rect.left;
int MAX_HEIGHT = rect.bottom - rect.top;
//cout << "MAX_WIDTH " << MAX_WIDTH << " MAX_HEIGHT " << MAX_HEIGHT << endl;
HDC hdcTemp = CreateCompatibleDC(hdc);
BITMAPINFO bitmap;
bitmap.bmiHeader.biSize = sizeof(bitmap.bmiHeader);
bitmap.bmiHeader.biWidth = MAX_WIDTH;
bitmap.bmiHeader.biHeight = -MAX_HEIGHT;
bitmap.bmiHeader.biPlanes = 1;
bitmap.bmiHeader.biBitCount = 32;
bitmap.bmiHeader.biCompression = BI_RGB;
bitmap.bmiHeader.biSizeImage = 0;
bitmap.bmiHeader.biClrUsed = 0;
bitmap.bmiHeader.biClrImportant = 0;
LPRGBQUAD bitPointer;
HBITMAP hBitmap2 = CreateDIBSection(hdcTemp, &bitmap, DIB_RGB_COLORS, (void**)&bitPointer, 0, 0);
HBITMAP hbmpOld = (HBITMAP)SelectObject(hdcTemp, hBitmap2);
BitBlt(hdcTemp, 0, 0, MAX_WIDTH, MAX_HEIGHT, hdc, 0, 0, SRCCOPY);
素晴らしいである
54
です!私はそれを勉強しようとする... –