• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            幽幽
             
            posts - 51,  comments - 28,  trackbacks - 0

            從該DC中得到位圖數(shù)據(jù)


            在DC加載了RGB24位圖,如何從該DC中得到位圖數(shù)據(jù),給些代碼好嗎?
            回復(fù)人: windows_editor(等咱有錢(qián)了,每天早上喝兩大碗豆?jié){)
            LONG GetBitmapBits(
              HBITMAP hbmp,      // handle to bitmap
              LONG cbBuffer,     // number of bytes to copy
              LPVOID lpvBits     // buffer to receive bits
            );  //從位圖中取RGB值
            SetBitmapBits 將位圖的數(shù)據(jù)加上頭格式轉(zhuǎn)化為位圖
            回復(fù)人: bluebohe(薄荷) 
            HBITMAP GetSrcBit(HDC hDC,DWORD BitWidth, DWORD BitHeight)
            {
            HDC hBufDC;
            HBITMAP hBitmap, hBitTemp;
            //創(chuàng)建設(shè)備上下文(HDC)
            hBufDC = CreateCompatibleDC(hDC);
            //創(chuàng)建HBITMAP
            hBitmap = CreateCompatibleBitmap(hDC, BitWidth, BitHeight);
            hBitTemp = (HBITMAP) SelectObject(hBufDC, hBitmap);
            //得到位圖緩沖區(qū)
            StretchBlt(hBufDC, 0, 0, BitWidth, BitHeight,
            hDC, 0, 0, BitWidth, BitHeight, SRCCOPY);
            //得到最終的位圖信息
            hBitmap = (HBITMAP) SelectObject(hBufDC, hBitTemp);
            //釋放內(nèi)存
            DeleteObject(hBitTemp);
            ::DeleteDC(hBufDC);
            return hBitmap;
            }
            BOOL SaveBmp(HBITMAP hBitmap, CString FileName)
            {
            //設(shè)備描述表
            HDC hDC;
            //當(dāng)前分辨率下每象素所占字節(jié)數(shù)
            int iBits;
            //位圖中每象素所占字節(jié)數(shù)
            WORD wBitCount;
            //定義調(diào)色板大小, 位圖中像素字節(jié)大小 ,位圖文件大小 , 寫(xiě)入文件字節(jié)數(shù) 
            DWORD dwPaletteSize=0, dwBmBitsSize=0, dwDIBSize=0, dwWritten=0; 
            //位圖屬性結(jié)構(gòu) 
            BITMAP Bitmap;  
            //位圖文件頭結(jié)構(gòu)
            BITMAPFILEHEADER bmfHdr;  
            //位圖信息頭結(jié)構(gòu) 
            BITMAPINFOHEADER bi;  
            //指向位圖信息頭結(jié)構(gòu)  
            LPBITMAPINFOHEADER lpbi;  
            //定義文件,分配內(nèi)存句柄,調(diào)色板句柄 
            HANDLE fh, hDib, hPal,hOldPal=NULL; 
            //計(jì)算位圖文件每個(gè)像素所占字節(jié)數(shù) 
            hDC = CreateDC("DISPLAY", NULL, NULL, NULL);
            iBits = GetDeviceCaps(hDC, BITSPIXEL) * GetDeviceCaps(hDC, PLANES); 
            DeleteDC(hDC); 
            if (iBits <= 1) wBitCount = 1; 
            else if (iBits <= 4)  wBitCount = 4; 
            else if (iBits <= 8)  wBitCount = 8; 
            else   wBitCount = 24; 
            GetObject(hBitmap, sizeof(Bitmap), (LPSTR)&Bitmap);
            bi.biSize = sizeof(BITMAPINFOHEADER);
            bi.biWidth = Bitmap.bmWidth;
            bi.biHeight = Bitmap.bmHeight;
            bi.biPlanes = 1;
            bi.biBitCount = wBitCount;
            bi.biCompression = BI_RGB;
            bi.biSizeImage = 0;
            bi.biXPelsPerMeter = 0;
            bi.biYPelsPerMeter = 0;
            bi.biClrImportant = 0;
            bi.biClrUsed = 0;
            dwBmBitsSize = ((Bitmap.bmWidth * wBitCount + 31) / 32) * 4 * Bitmap.bmHeight;
            //為位圖內(nèi)容分配內(nèi)存 
            hDib = GlobalAlloc(GHND,dwBmBitsSize + dwPaletteSize + sizeof(BITMAPINFOHEADER)); 
            lpbi = (LPBITMAPINFOHEADER)GlobalLock(hDib); 
            *lpbi = bi; 

            // 處理調(diào)色板  
            hPal = GetStockObject(DEFAULT_PALETTE); 
            if (hPal) 

            hDC = ::GetDC(NULL); 
            hOldPal = ::SelectPalette(hDC, (HPALETTE)hPal, FALSE); 
            RealizePalette(hDC); 
            }
            // 獲取該調(diào)色板下新的像素值 
            GetDIBits(hDC, hBitmap, 0, (UINT) Bitmap.bmHeight, (LPSTR)lpbi + sizeof(BITMAPINFOHEADER) +dwPaletteSize, (BITMAPINFO *)lpbi, DIB_RGB_COLORS); 
            //恢復(fù)調(diào)色板  
            if (hOldPal) 

            ::SelectPalette(hDC, (HPALETTE)hOldPal, TRUE); 
            RealizePalette(hDC); 
            ::ReleaseDC(NULL, hDC); 

            //創(chuàng)建位圖文件  
            fh = CreateFile(FileName, GENERIC_WRITE,0, NULL, CREATE_ALWAYS, 
            FILE_ATTRIBUTE_NORMAL | FILE_FLAG_SEQUENTIAL_SCAN, NULL); 
            if (fh == INVALID_HANDLE_VALUE)  return FALSE; 
            // 設(shè)置位圖文件頭 
            bmfHdr.bfType = 0x4D42; // "BM" 
            dwDIBSize = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER) + dwPaletteSize + dwBmBitsSize;  
            bmfHdr.bfSize = dwDIBSize; 
            bmfHdr.bfReserved1 = 0; 
            bmfHdr.bfReserved2 = 0; 
            bmfHdr.bfOffBits = (DWORD)sizeof(BITMAPFILEHEADER) + (DWORD)sizeof(BITMAPINFOHEADER) + dwPaletteSize; 
            // 寫(xiě)入位圖文件頭 
            WriteFile(fh, (LPSTR)&bmfHdr, sizeof(BITMAPFILEHEADER), &dwWritten, NULL); 
            // 寫(xiě)入位圖文件其余內(nèi)容 
            WriteFile(fh, (LPSTR)lpbi, dwDIBSize, &dwWritten, NULL); 
            //清除  
            GlobalUnlock(hDib); 
            GlobalFree(hDib); 
            CloseHandle(fh); 

            return TRUE;
            }


            posted on 2008-09-28 16:19 幽幽 閱讀(2273) 評(píng)論(0)  編輯 收藏 引用

            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理



            <2008年9月>
            31123456
            78910111213
            14151617181920
            21222324252627
            2829301234
            567891011

            常用鏈接

            留言簿(6)

            隨筆分類(35)

            隨筆檔案(51)

            文章分類(3)

            文章檔案(3)

            相冊(cè)

            我的鏈接

            搜索

            •  

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            久久―日本道色综合久久| 91久久九九无码成人网站 | 久久中文字幕视频、最近更新| 精品久久777| 久久久久无码国产精品不卡| 尹人香蕉久久99天天拍| 久久久久免费看成人影片| 久久综合九色综合精品| 无码8090精品久久一区| 日韩人妻无码一区二区三区久久| 久久综合狠狠色综合伊人| 久久久久精品国产亚洲AV无码| 久久99精品国产自在现线小黄鸭| 99久久国产精品免费一区二区| 精品乱码久久久久久久| 久久精品国产一区二区电影| 久久综合狠狠综合久久| 爱做久久久久久| WWW婷婷AV久久久影片| 亚州日韩精品专区久久久| av无码久久久久久不卡网站| 亚洲伊人久久成综合人影院 | 亚洲一区中文字幕久久| 久久热这里只有精品在线观看| 国产精品激情综合久久| 婷婷伊人久久大香线蕉AV| 久久亚洲国产成人影院网站| 精品久久久久久久久中文字幕| 国内精品伊人久久久久777| 久久久久久久久久免免费精品| 国产精品久久久久久久久免费| 色婷婷综合久久久中文字幕| 亚洲国产精品成人AV无码久久综合影院| 99久久久精品免费观看国产| 亚洲国产精品无码久久一线 | 亚洲伊人久久综合中文成人网| 久久久久国产一区二区三区| 99精品伊人久久久大香线蕉| 久久这里只精品国产99热| 成人久久久观看免费毛片| 色诱久久久久综合网ywww|