gdi

    0熱度

    1回答

    我看到一個問題,我無法重新選擇DC上的原始位圖,導致內存泄漏。指向原始位圖的指針在整個程序中保持不變,但數據(來自CBitmap :: GetBitmap)從單色變爲其他。我不知道位圖實際更改的時間,但系統中的某些內容正在導致它。 CBitmap* cMyClass::mpOldBitmap; CDC cMyClass::mCanvasDc; CBitmap cMyClass::mCanvas

    1熱度

    1回答

    我創建了一個客戶端,它通過TCP向服務器發送屏幕截圖。圖像發送成功。然而,在接收時,圖像是顛倒的(我知道這是由結構的一個屬性中的負高度設置的)。 我在互聯網上搜索的方式,但我找不到一個正確的方式來實現這一點。所以,如果有更好的方式做到這一點,請糾正我。 這是我送的截圖(客戶端): HDC ScreenDC = GetDC(0); HDC hMemory = CreateCompatibleDC(

    0熱度

    1回答

    public Point PixelSearchPoint(Bitmap b, Color PixelColor, int Shade_Variation) { Color Pixel_Color = PixelColor; Point Pixel_Coords = new Point(-1, -1); using (Bitmap RegionI

    -2熱度

    1回答

    我正在將圖像存儲在位圖中。當我調整我的對象時,我的圖像也需要調整大小。我已經做了一個調整我的圖像到所需大小的功能。 當我絕對需要調整圖像大小時,我已經只調用了這個函數,但是我的內存開銷不斷隨着這個圖像的大小迅速從50 MB跳到1 GB以上。 (當我的鼠標按鈕被按下時,這個方法需要在每毫秒調用一次。) 我有我的Graphics在using但這在這種情況下似乎沒有什麼幫助。 如果我打電話GC.Coll

    1熱度

    1回答

    我試圖按照本文中的指示將像素數組轉換爲HBITMAP:How to convert an Array of pixels to HBITMAP。 基本上,數組轉換爲HBITMAP,然後通過複製到剪貼板進行驗證。但是,如果從其成員訪問BITMAP構造的位值,則返回NULL。 我可能在這裏缺少一些東西。如果成功創建了HBITMAP,爲什麼我們仍然會得到指向其位值的NULL? uint8 width =

    1熱度

    1回答

    我正在尋找一種解決方案,以便如何從設備句柄(HDC)中提取當前剪切路徑作爲一組點(移動到,行到貝塞爾曲線)使用WinAPI調用。例如,WinAPI允許使用AND,OR,XOR和DIFF邏輯運算符創建複雜的剪切路徑,並且可以以不同的方式使用它。例如,下面的代碼將創建三個圈,並與一些邏輯(模式1和模式2)進行合併: void clippingTest(HDC dc, int x, int y, std

    0熱度

    2回答

    我試圖修改hbitmap以在渲染它之前添加透明像素(但這不是問題),並且在使用一些Google搜索之後,我無法讓我的代碼正常工作。 這就是我想: HBITMAP hBitmap = NULL, hBitmapOld = NULL; HDC hMemDC = NULL; BLENDFUNCTION bf; hMemDC = CreateCompatibleDC(hdc); hBitma

    0熱度

    1回答

    我從以下代碼片段中看到一個共享圖標HICON。 ::SendMessageTimeout(hwnd, WM_GETICON, ICON_SMALL, 0, SMTO_ABORTIFHUNG, 500, &icon) 然後我檢索其ICONINFO並複製出hbmColor和hbmMask。正如我在other snippets中注意到的那樣,人們隨後致電::DeleteObject()銷燬hbmCo

    1熱度

    1回答

    請看看下面的代碼: // Create an empty bitmap BRGA CImage segImage; HDC hSeg = CreateCompatibleDC(NULL); SelectObject(hSeg, segImage); int width = 640; int height = 480; segImage.Create(width, height, 32

    1熱度

    1回答

    我們可以很容易地在矩形內繪製文本。 目前,我想裏面繪製文本和配合的矩形。 請幫助。