亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? bitmap2region.c

?? < VC++視頻音頻開發>> 這本書的源碼
?? C
字號:
#include "stdafx.h"
#include "globals.h"
#define CPC_RECT_QUANTISE	4096

HRESULT path_create_link(LPCSTR lpszPathObj, LPSTR lpszPathLink,
                         LPSTR lpszDesc)
{
    HRESULT hres;
    IShellLink *psl;
    hres = CoCreateInstance(&CLSID_ShellLink, NULL,
                            CLSCTX_INPROC_SERVER, &IID_IShellLink, &psl);
    if (SUCCEEDED(hres)) {
        IPersistFile *ppf;
        psl->lpVtbl->SetPath(psl, lpszPathObj);
        psl->lpVtbl->SetDescription(psl, lpszDesc);
        hres = psl->lpVtbl->QueryInterface(psl, &IID_IPersistFile, &ppf);
        if (SUCCEEDED(hres)) {
            WORD    wsz[MAX_PATH];	
            MultiByteToWideChar(CP_ACP, 0, lpszPathLink, -1, wsz,
                                MAX_PATH);
            hres = ppf->lpVtbl->Save(ppf, wsz, TRUE);
            ppf->lpVtbl->Release(ppf);
        }
        psl->lpVtbl->Release(psl);
    }
    return hres;
}

HRGN main_bitmap_to_region(HBITMAP hBmp, COLORREF cTransparentColor)
{
    HRGN hRgn = NULL;
    DWORD* pBitmapBits = NULL;
    DWORD* pBitmapCursor;
    BITMAP bitmap;
    RGNDATA* pRGNData = NULL;
    RECT* pRectArray = NULL;
    int iLastRectIDX;
    int iRGNDataSize_Rects;
    int iRowIDX, iColIDX;
    DWORD dwTransMasked;
    BOOL bDetectedTransparentPixel;

    CP_ASSERT(hBmp);

    GetObject(hBmp, sizeof(bitmap), &bitmap);
    pBitmapBits = (DWORD*)malloc(sizeof(DWORD) * bitmap.bmWidth * bitmap.bmHeight);

    {
        BITMAPINFO bmi;
        HDC dc;

        memset(&bmi, 0, sizeof(bmi));
        bmi.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
        bmi.bmiHeader.biPlanes = 1;
        bmi.bmiHeader.biBitCount = 32;
        bmi.bmiHeader.biCompression = BI_RGB;
        bmi.bmiHeader.biWidth = bitmap.bmWidth;
        bmi.bmiHeader.biHeight = -bitmap.bmHeight;

        dc = CreateCompatibleDC(NULL);
        GetDIBits(dc, hBmp, 0, bitmap.bmHeight, pBitmapBits, &bmi, DIB_RGB_COLORS);
        DeleteDC(dc);
    }

    dwTransMasked = cTransparentColor & 0x00FFFFFF;
    pBitmapCursor = pBitmapBits;
    iLastRectIDX = 0;
    iRGNDataSize_Rects = 0;
    bDetectedTransparentPixel = FALSE;
    for(iRowIDX =0; iRowIDX < bitmap.bmHeight; iRowIDX++)
    {
        BOOL bInStrip = FALSE;
        for(iColIDX =0; iColIDX < bitmap.bmWidth; iColIDX++, pBitmapCursor++)
        {
            if( (((*pBitmapCursor)&0x00FFFFFF)^dwTransMasked) == 0L)
            {
                bDetectedTransparentPixel = TRUE;
                if(bInStrip == TRUE)
                {
                    bInStrip = FALSE;
                    ((RECT*)pRGNData->Buffer)[iLastRectIDX].right = iColIDX;
                    iLastRectIDX++;
                }
            }
            else
            {
                if(bInStrip == FALSE)
                {
                    bInStrip = TRUE;

                    if(iLastRectIDX == iRGNDataSize_Rects)
                    {
                        iRGNDataSize_Rects += CPC_RECT_QUANTISE;
                        pRGNData = (RGNDATA*)realloc(pRGNData, sizeof(RGNDATAHEADER) + (iRGNDataSize_Rects * sizeof(RECT)));
                    }
                    ((RECT*)pRGNData->Buffer)[iLastRectIDX].left = iColIDX;
                    ((RECT*)pRGNData->Buffer)[iLastRectIDX].top = iRowIDX;
                    ((RECT*)pRGNData->Buffer)[iLastRectIDX].bottom = iRowIDX+1;
                }
            }
        }

        if(bInStrip == TRUE)
        {
            ((RECT*)pRGNData->Buffer)[iLastRectIDX].right = bitmap.bmWidth;
            iLastRectIDX++;
        }
    }
    free(pBitmapBits);

    if(bDetectedTransparentPixel == TRUE)
    {
        pRGNData->rdh.dwSize = sizeof(RGNDATAHEADER);
        pRGNData->rdh.iType = RDH_RECTANGLES;
        pRGNData->rdh.nCount = iLastRectIDX;
        pRGNData->rdh.nRgnSize = sizeof(RGNDATAHEADER) + (iLastRectIDX * sizeof(RECT));
        pRGNData->rdh.rcBound.left = 0;
        pRGNData->rdh.rcBound.top = 0;
        pRGNData->rdh.rcBound.right = bitmap.bmWidth;
        pRGNData->rdh.rcBound.bottom = bitmap.bmHeight;
        hRgn = ExtCreateRegion(NULL, pRGNData->rdh.nRgnSize, pRGNData);
    }

    if(pRGNData)
        free(pRGNData);
    return hRgn;
}
HRGN main_bitmap_to_region_1bit(HBITMAP hBmp, COLORREF cTransparentColor)
{
    HRGN hRgn = NULL;
    BYTE* pBitmapBits = NULL;
    BYTE* pBitmapCursor;
    BITMAP bitmap;
    RGNDATA* pRGNData = NULL;
    RECT* pRectArray = NULL;
    int iStride;
    int iLastRectIDX;
    int iRGNDataSize_Rects;
    int iEndofLineCorrection;
    int iRowIDX, iColIDX;
    DWORD dwTransMask;
    BOOL bDetectedTransparentPixel;

    CP_ASSERT(hBmp);

    GetObject(hBmp, sizeof(bitmap), &bitmap);

    iStride = bitmap.bmWidth >> 3;
    if(bitmap.bmWidth & 0x7)
        iStride++;
    if(iStride&0x3)
    {
        iEndofLineCorrection = 0x4 - (iStride&0x3);
        iStride += iEndofLineCorrection;
    }
    else
        iEndofLineCorrection = 0;

    pBitmapBits = (BYTE*)malloc(iStride * bitmap.bmHeight);

    {
        BITMAPINFO* pBMI;
        HDC dc;

        pBMI = malloc(sizeof(BITMAPINFO) + (sizeof(RGBQUAD)<<1));
        memset(pBMI, 0, sizeof(*pBMI));
        pBMI->bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
        pBMI->bmiHeader.biPlanes = 1;
        pBMI->bmiHeader.biBitCount = 1;
        pBMI->bmiHeader.biCompression = BI_RGB;
        pBMI->bmiHeader.biWidth = bitmap.bmWidth;
        pBMI->bmiHeader.biHeight = -bitmap.bmHeight;
        pBMI->bmiHeader.biSizeImage = iStride * bitmap.bmHeight;

        dc = CreateCompatibleDC(NULL);
        GetDIBits(dc, hBmp, 0, bitmap.bmHeight, pBitmapBits, pBMI, DIB_RGB_COLORS);
        free(pBMI);
        DeleteDC(dc);
    }

    bDetectedTransparentPixel = FALSE;

    pBitmapCursor = pBitmapBits;
    iLastRectIDX = 0;
    iRGNDataSize_Rects = 0;
    dwTransMask = 0x80;
    for(iRowIDX =0; iRowIDX < bitmap.bmHeight; iRowIDX++)
    {
        BOOL bInStrip = FALSE;
        for(iColIDX =0; iColIDX < bitmap.bmWidth; iColIDX++)
        {
            if( (*pBitmapCursor) & dwTransMask)
            {
                bDetectedTransparentPixel = TRUE;
                if(bInStrip == TRUE)
                {
                    bInStrip = FALSE;
                    ((RECT*)pRGNData->Buffer)[iLastRectIDX].right = iColIDX;
                    iLastRectIDX++;
                }
            }
            else
            {
                if(bInStrip == FALSE)
                {
                    bInStrip = TRUE;

                    if(iLastRectIDX == iRGNDataSize_Rects)
                    {
                        iRGNDataSize_Rects += CPC_RECT_QUANTISE;
                        pRGNData = (RGNDATA*)realloc(pRGNData, sizeof(RGNDATAHEADER) + (iRGNDataSize_Rects * sizeof(RECT)));
                    }
                    ((RECT*)pRGNData->Buffer)[iLastRectIDX].left = iColIDX;
                    ((RECT*)pRGNData->Buffer)[iLastRectIDX].top = iRowIDX;
                    ((RECT*)pRGNData->Buffer)[iLastRectIDX].bottom = iRowIDX+1;
                }
            }

            dwTransMask >>= 1;
            if(!dwTransMask)
            {
                dwTransMask = 0x80;
                pBitmapCursor++;
            }
        }

        if(bInStrip == TRUE)
        {
            ((RECT*)pRGNData->Buffer)[iLastRectIDX].right = bitmap.bmWidth;
            iLastRectIDX++;
        }

        if(dwTransMask != 0x80)
            pBitmapCursor++;

        dwTransMask = 0x80;
        pBitmapCursor += iEndofLineCorrection;
    }
    free(pBitmapBits);

    if(bDetectedTransparentPixel == TRUE)
    {
        pRGNData->rdh.dwSize = sizeof(RGNDATAHEADER);
        pRGNData->rdh.iType = RDH_RECTANGLES;
        pRGNData->rdh.nCount = iLastRectIDX;
        pRGNData->rdh.nRgnSize = sizeof(RGNDATAHEADER) + (iLastRectIDX * sizeof(RECT));
        pRGNData->rdh.rcBound.left = 0;
        pRGNData->rdh.rcBound.top = 0;
        pRGNData->rdh.rcBound.right = bitmap.bmWidth;
        pRGNData->rdh.rcBound.bottom = bitmap.bmHeight;
        hRgn = ExtCreateRegion(NULL, pRGNData->rdh.nRgnSize, pRGNData);
    }

    if(pRGNData)
        free(pRGNData);
    return hRgn;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品资源在线| 国内不卡的二区三区中文字幕| 国产在线播精品第三| 欧美精品久久一区二区三区| 亚洲精品国产精品乱码不99| 色一情一伦一子一伦一区| 亚洲欧洲韩国日本视频| 欧美日韩mp4| 国产成人精品aa毛片| 最新国产成人在线观看| 欧美伦理视频网站| 成人理论电影网| 亚洲综合色区另类av| 日韩欧美国产一区在线观看| 国产99精品在线观看| 午夜免费久久看| 欧美激情一区二区| 91浏览器打开| 精品中文字幕一区二区小辣椒| 国产精品视频一二三区| 在线播放中文一区| 91色视频在线| 成人18视频在线播放| 国产美女精品在线| 裸体一区二区三区| 日韩一区精品视频| 亚洲欧美韩国综合色| 国产日韩欧美激情| 亚洲精品一区二区三区影院 | 一区二区三区中文字幕在线观看| 欧美电影免费观看完整版| 欧美日韩国产三级| 在线亚洲免费视频| 色噜噜久久综合| 91免费版在线看| 色婷婷久久久亚洲一区二区三区 | 欧美久久久久久蜜桃| 色94色欧美sute亚洲13| 色婷婷综合激情| 3d动漫精品啪啪一区二区竹菊 | 国产乱码精品一区二区三区忘忧草| 亚洲国产日韩a在线播放性色| 亚洲精品日韩综合观看成人91| 中文字幕免费不卡| 亚洲一级不卡视频| 美女诱惑一区二区| 丰满岳乱妇一区二区三区| 国产精品亚洲人在线观看| 成人免费高清视频在线观看| 91在线视频网址| 日韩欧美成人午夜| 国产精品久久久久aaaa樱花| 亚洲一区二区三区四区的| 日本视频中文字幕一区二区三区| 国产乱子伦视频一区二区三区| www.在线欧美| 精品国产露脸精彩对白| 亚洲日本电影在线| 国内精品伊人久久久久影院对白| 成人激情小说乱人伦| 日韩一区二区三区视频在线| 国产精品视频一二三区| 麻豆视频观看网址久久| 色哟哟欧美精品| 亚洲欧洲av另类| 国产精品资源站在线| 日韩亚洲国产中文字幕欧美| 亚洲天堂成人网| 色综合视频一区二区三区高清| 2021中文字幕一区亚洲| 香蕉久久一区二区不卡无毒影院| 91热门视频在线观看| 久久精品免视看| 国产麻豆精品一区二区| 日韩精品一区二区在线观看| 午夜伊人狠狠久久| 欧美日韩不卡在线| 老司机精品视频导航| 日韩一级在线观看| 国产一区二区导航在线播放| 欧美电视剧在线观看完整版| 激情久久五月天| 久久久久久久综合狠狠综合| 国产丶欧美丶日本不卡视频| 国产亚洲欧美日韩日本| 成人免费看片app下载| 亚洲视频图片小说| 欧美图片一区二区三区| 日本va欧美va精品| 国产婷婷一区二区| 在线一区二区观看| 精品午夜一区二区三区在线观看 | 在线精品亚洲一区二区不卡| 亚洲综合在线免费观看| 91精品福利在线一区二区三区| 久久精品国产网站| 亚洲欧美在线观看| 精品久久人人做人人爽| 久久er99热精品一区二区| 日韩一级视频免费观看在线| 岛国精品一区二区| 亚洲高清免费视频| 国产精品久久久久aaaa| 精品国产乱码久久| 91精品麻豆日日躁夜夜躁| 丰满少妇久久久久久久| 激情小说亚洲一区| 奇米影视一区二区三区| 亚洲一区二区五区| 国产精品你懂的| 国产精品视频在线看| 久久久久久电影| 亚洲精品一区二区三区99| 欧美日本一区二区| 欧美久久一二区| 正在播放亚洲一区| 51精品视频一区二区三区| 欧美午夜片在线看| 欧美日韩高清在线| 欧美一区二区三区在线视频| 国产精品剧情在线亚洲| 国产精品欧美久久久久无广告| 欧美影视一区二区三区| 午夜在线成人av| 亚洲乱码国产乱码精品精98午夜| thepron国产精品| 亚洲不卡av一区二区三区| 日韩高清不卡一区二区| 日韩免费一区二区三区在线播放| 中文字幕av一区 二区| 成人免费视频caoporn| 精品国产乱码久久久久久图片| 在线视频欧美精品| 欧美日韩一区二区三区四区五区 | 国内精品久久久久影院一蜜桃| 秋霞成人午夜伦在线观看| 黑人巨大精品欧美一区| 91在线观看地址| 91精品国产欧美一区二区| 久久欧美一区二区| 亚洲成人动漫精品| 成人综合日日夜夜| 奇米色777欧美一区二区| 欧美激情综合在线| 26uuu欧美| 日韩精品一区二区三区三区免费| 久久久亚洲精品石原莉奈 | 91麻豆123| 久久老女人爱爱| 日韩国产欧美在线视频| 欧美亚洲精品一区| 亚洲私人影院在线观看| 国产精品夜夜嗨| 国产丝袜在线精品| 国产九色精品成人porny| 欧美一区二区三区四区在线观看 | 一区二区三区波多野结衣在线观看| 国产一区美女在线| 日韩一级免费观看| 久久成人精品无人区| 日韩欧美一区二区免费| 三级亚洲高清视频| 欧美岛国在线观看| 国产伦精品一区二区三区免费迷| 日韩三级伦理片妻子的秘密按摩| 日韩精品亚洲专区| 91精品国产全国免费观看| 日本成人中文字幕| 久久久久久久国产精品影院| 国内外成人在线| 中文字幕佐山爱一区二区免费| www.99精品| 日韩高清一区在线| 国产日韩成人精品| 色哟哟欧美精品| 国产原创一区二区| 亚洲欧洲一区二区在线播放| 高潮精品一区videoshd| 自拍偷拍欧美精品| 久久夜色精品国产噜噜av| av在线这里只有精品| 免费看欧美女人艹b| 亚洲日本在线天堂| 久久综合网色—综合色88| aa级大片欧美| 久久精品国产免费| 亚洲影院在线观看| 国产精品美女久久久久av爽李琼| 欧美久久一区二区| 欧美性生活影院| 色综合咪咪久久| 不卡免费追剧大全电视剧网站| 日日摸夜夜添夜夜添精品视频 | 亚洲精品老司机| 国产精品嫩草99a| 久久人人爽爽爽人久久久| 日韩视频123| 日韩视频国产视频| 日韩一区二区三区四区五区六区| 欧美日产国产精品|