由RGB資料建立HBITMAP

2021-04-13 03:26:31 字數 822 閱讀 2970

久離vc現場,感覺手有點生疏,應了一句話「武功珍藏是要貶值的」,何況現在又是牛氣沖天。

在開發中要用到編個錄影功能,需要由rgb資料建立hbitmap,試了幾個函式,createbitmap,createdibitmap,得到的始終不是正確的結果,在網上找了這個兩個函式一些資訊,沒有針對性的解釋,索性換個函式createdibsection,很好的解決了我的問題。

hdc hdc = ::getdc(0);

bitmapinfoheader bmih;

memset(&bmih, 0, sizeof(bitmapinfoheader));

bmih.bisize = sizeof(bitmapinfoheader);

bmih.biwidth= nwidth;

bmih.biheight= nheight;

bmih.bisizeimage=nwidth*nheight;

bmih.bicompression = bi_rgb;

bmih.bibitcount = 24;

bmih.biplanes = 1;

byte* pbits;

hbitmap hbmp = createdibsection(hdc, (bitmapinfo*) &bmih, dib_rgb_colors, (void**)&pbits, null, 0);

int ret = setdibits(hdc, hbmp, 0, nheight, m_precordbuf, (bitmapinfo*) &bmih, dib_rgb_colors);

一來可以方便自己使用查詢,二來如若有人也遇到此種情形,可以參考,利人利己,呵呵。

qemu中的Hbitmap資料結構

儘管unsigned long已經能夠勝任bitmap的實現,但是這樣實現的bitmap,當bitmap比較大的時候,它的操作效率很低。典型的,像為blockdriver維持bitmap,磁碟檔案的每個塊都對應乙個bit位,那麼這張bitmap表是很大的。如果在熱遷移過程中,需要將映象檔案熱遷移到目...

如何由RGB計算HSV空間的色相值

前提 max min取值範圍 0 255 公式 解釋 1 正六邊形色平面的每個區域中,色相值都有一位是255 一位是0,所以恆成立max 255,min 0。所以max r g b 時,即為r g b 255時。2 色平面每條對角線分割出兩個區域都出現一種顏色值大於另一種顏色值的情況。例如,分割線0...

RGB24資料直接寫屏

int iwidth,iheight,ibyteswidth iwidth 500 iheight 500 float dtemp 960 ibyteswidth iwidth 4 iwidth 4 1 4 iwidth handle hmem globalalloc gmem moveable,i...