日韩免费在线观看成人,骚碰成人免费视频,电影院 摸 湿 嗯…啊h

    1. <span id="um726"><blockquote id="um726"></blockquote></span>

        <span id="um726"><blockquote id="um726"></blockquote></span>
        1. 您的位置:首頁>世界杯 >內(nèi)容

          ManBetX萬博最新網(wǎng)址 (關(guān)于ManBetX萬博最新網(wǎng)址 玩法)

          2022-11-23 03:34:59來源:世界杯
          導(dǎo)讀24位ManBetX萬博最新網(wǎng)址 圖片轉(zhuǎn)565格式16位數(shù)組C文件代碼,生成的代碼用于嵌入式程序代碼中圖片文件顯示,ManBetX萬博最新網(wǎng)址 圖片以數(shù)組的...

          24位ManBetX萬博最新網(wǎng)址 圖片轉(zhuǎn)565格式16位數(shù)組C文件代碼,生成的代碼用于嵌入式程序代碼中圖片文件顯示,ManBetX萬博最新網(wǎng)址 圖片以數(shù)組的形式保存并讀取,將24位位圖格式轉(zhuǎn)換為16位位圖格式的源代碼,包括RGB555格式和RGB565格式。

          幫朋友做一個視頻采集和基本處理功能,要求的是.bmp格式

          幾天下來,通過directshow進(jìn)行視頻采集,并抓去圖片保存,按照要求進(jìn)行業(yè)務(wù)處理,以前的處理程序是基于RGB24

          而顯示器是32位真彩色,后調(diào)整directshow 的grab filter,修改媒體類型,pmt->majortype = MEDIATYPE_Video;?pmt->subtype = MEDIASUBTYPE_RGB24; 結(jié)果在業(yè)務(wù)中效果不理想,為既保留32位圖,也生成rgb24位圖

          硬是將BITMAPINFOHEADER *lpbi 中的值進(jìn)行強(qiáng)行設(shè)置lpbi->biBitCount = 24;

          結(jié)果是:產(chǎn)生的圖片帶有間斷性的彩色條紋

          然后再在谷歌、擺渡中繼續(xù)游泳,沒有實(shí)質(zhì)性進(jìn)展

          無奈,進(jìn)微軟msdn、gdi+...

          接下來的兩天就是惡補(bǔ)ManBetX萬博最新網(wǎng)址 知識,發(fā)現(xiàn)彩色條紋應(yīng)該是RGB32位顏色空間值,對于RGB32與RGB24,它們的像素點(diǎn)空間只差了一個字節(jié),

          繼而,自行轉(zhuǎn)換數(shù)據(jù)

          首先是從directshow中獲取圖像數(shù)據(jù)

          其次是,保留獲取數(shù)據(jù)的文件頭

          然后是轉(zhuǎn)換位圖數(shù)據(jù)內(nèi)容,并將內(nèi)容另置空間

          最后設(shè)定BITMAPFILEHEADER文件頭,并寫文件,

          為備忘,具體實(shí)現(xiàn)如下:

          ?TRY??{???BYTE *buffer = NULL;???hr = m_pWindowsLessControl->GetCurrentImage(&buffer);?//這里 m_pWindowsLessControl為IVMRWindowlessControl,進(jìn)行圖像抓取;??if (!SUCCEEDED(hr))???{????????return hr;??}???BITMAPFILEHEADER hdr;???????BITMAPINFOHEADER *lpbi = (BITMAPINFOHEADER *)buffer;????//顏色空間轉(zhuǎn)換,如果為32位位圖,轉(zhuǎn)換為24??DWORD dwSize24 = 0;??DWORD dwSize32 = lpbi->biSizeImage;??dwSize24 = (dwSize32*3)/4;?? //RGB32與RGB24的像素點(diǎn)空間差一個字節(jié)??BYTE* pImg24 = new BYTE[dwSize24]; //存放RGB24存儲空間??BYTE* pImg24Temp = pImg24;//設(shè)定臨時指針,后續(xù)進(jìn)行數(shù)據(jù)管理??BYTE* pImg32 = buffer + sizeof(BITMAPINFOHEADER);//跳過文件頭,定位到數(shù)據(jù)部分???bool isSize24 = false;??if (lpbi->biBitCount==32)??{???isSize24 = true;???for (DWORD index=0; indexbiBitCount = 24;//強(qiáng)行指定????}????int nColors = 1 << lpbi->biBitCount;???//按照設(shè)定深度,進(jìn)行顏色計算??????if (nColors > 256)????????????nColors = 0;????????hdr.bfType = ((WORD)('M' << 8) | 'B'); //?指定ManBetX萬博最新網(wǎng)址

          //進(jìn)行文件頭設(shè)置??????hdr.bfSize = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER) + nColors * sizeof(RGBQUAD) + lpbi->biSizeImage;??????hdr.bfReserved1 = 0;???????hdr.bfReserved2 = 0;???????hdr.bfOffBits = (DWORD)(sizeof(BITMAPFILEHEADER) + lpbi->biSize + nColors * sizeof(RGBQUAD));??

          //進(jìn)行位圖寫入??????FILE *bmpFile = NULL;???????bmpFile = fopen((LPCTSTR)szFile, wb);//szFile為文件名???????if (bmpFile != NULL)???????{????????????fwrite(&hdr, 1, sizeof(BITMAPFILEHEADER), bmpFile);//位圖文件頭????????????fwrite(buffer, 1, sizeof(BITMAPINFOHEADER), bmpFile);//位圖信息頭

          ???if (!isSize24)???{????fwrite(buffer+sizeof(BITMAPINFOHEADER), 1, nColors * sizeof(RGBQUAD), bmpFile);//顏色表?????????????fwrite(buffer+sizeof(BITMAPINFOHEADER)+nColors * sizeof(RGBQUAD), 1, lpbi->biSizeImage, bmpFile);//位圖數(shù)據(jù)????????}???else???{????fwrite(pImg24Temp,1,dwSize24,bmpFile);???}

          ??}???????fclose(bmpFile);????????CoTaskMemFree(buffer);//釋放資源??delete pImg24Temp;???return hr;?}?CATCH (CMemoryException, e)?{???}?END_CATCH?}

          ?折騰了兩天,真費(fèi)勁,特此記錄一下備忘

          免責(zé)聲明:本文由用戶上傳,如有侵權(quán)請聯(lián)系刪除!

          猜你喜歡

          最新文章