RGB24資料直接寫屏

2021-04-13 07:41:40 字數 1133 閱讀 4325

int   iwidth,   iheight,   ibyteswidth;  

iwidth   =   500;  

iheight   =   500;  

float   dtemp   =   960;  

ibyteswidth   =   (iwidth   %   4)   ?   (iwidth   /   4   +   1)   *   4   :   iwidth;  

handle   hmem   =   globalalloc(gmem_moveable,   ibyteswidth   *   iheight   *   3);  

byte   *image   =   (byte*)globallock(hmem);//new   byte[ibyteswidth   *   iheight   *   3];  

//memset(image,   100,   ibyteswidth   *   iheight   *   3);  

bitmapinfo     bmi;  

zeromemory(&bmi,   sizeof(bitmapinfo));  

bmi.bmiheader.bisize   =   sizeof(bitmapinfoheader);  

bmi.bmiheader.biwidth   =   iwidth;  

bmi.bmiheader.biheight   =   iheight;  

bmi.bmiheader.biplanes   =   1;  

bmi.bmiheader.bibitcount   =   24;  

bmi.bmiheader.bicompression   =   bi_rgb;  

::setdibitstodevice(pdc->getsafehdc(),   0,   0,   iwidth,   iheight,   0,   0,   0,   iheight,   image,   &bmi,   dib_rgb_colors);  

globalunlock(hmem);  

globalfree(hmem);  

delete   image;spi_getwheelscrolllines   

(YUV420轉化RGB24)編譯通過

做了一段時間的攝像頭,看了網上很多帖子,也學習了不少東西,自己總結下,希望給需要的人以參考 自己測試過,沒有問題,廢話少說。說說我的環境吧 系統 fc4,ubuntu 7.04,8.04 均測試過 攝像頭 網眼v2000 介面 qt3.3 核心首先ov511 預設輸出是yuv420,一下是實現yuv...

直接通過framebuffer直接寫屏

幀緩衝 framebuffer 是 linux 為顯示裝置提供的乙個介面,把視訊記憶體抽象後的一種裝置,他允許上層應用程式在圖形模式下直接對顯示緩衝區進行讀寫操作。這種操作是抽象的,統一的。使用者不必 關心物理視訊記憶體的位置 換頁機制等等具體細節。這些都是由framebuffer 裝置驅動來完成的...

使用C 將RGB24轉換為YUV420格式

1.原料準備!首先我們獲得rgb原始資料,這裡不能使用jpg等壓縮格式,需要先將轉換為rgb格式的裸資料儲存!這裡提供乙個 可以做轉換!2.轉碼 使用下面的 即可轉換為yuv420!有需要的同學可以試試看!filestream fs new filestream test.rgb filemode....