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

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

?? bitmap2region.c

?? VC++視頻開發實例集錦(包括“遠程視頻監控”"語音識別系統"等13個經典例子)
?? 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一区二区三区免费野_久草精品视频
看国产成人h片视频| 日韩电影在线一区| 精品久久久久久久久久久院品网| 日本精品一区二区三区高清| 成人毛片老司机大片| 成人免费毛片a| 处破女av一区二区| av爱爱亚洲一区| 北岛玲一区二区三区四区| 丰满放荡岳乱妇91ww| 成人高清视频在线| 91免费观看在线| 在线欧美一区二区| 欧美视频在线观看一区二区| 欧美三日本三级三级在线播放| 欧美日韩中字一区| 欧美一区三区二区| 久久色在线视频| 国产精品国产自产拍高清av王其| 亚洲欧洲韩国日本视频| 夜色激情一区二区| 日产国产高清一区二区三区| 激情六月婷婷久久| 成人av电影观看| 欧美日本免费一区二区三区| 精品国产污污免费网站入口| 国产农村妇女毛片精品久久麻豆 | 色综合久久天天| 欧美三级韩国三级日本一级| 91麻豆精品国产91久久久资源速度 | 日韩精品一区二区三区在线播放| www成人在线观看| 综合久久综合久久| 免费成人av资源网| 91热门视频在线观看| 日韩一级黄色片| 成人欧美一区二区三区白人| 午夜精品国产更新| 国产电影精品久久禁18| 欧美另类z0zxhd电影| 国产欧美一区视频| 日本欧美大码aⅴ在线播放| 高清在线不卡av| 在线不卡中文字幕播放| 国产肉丝袜一区二区| 亚洲chinese男男1069| 国产91精品免费| 欧美人xxxx| 亚洲人被黑人高潮完整版| 韩国v欧美v亚洲v日本v| 在线观看国产91| 国产精品无码永久免费888| 免费观看30秒视频久久| 91女厕偷拍女厕偷拍高清| 精品电影一区二区三区| 午夜精品久久久久久久99水蜜桃| 9色porny自拍视频一区二区| 精品久久久久香蕉网| 亚洲一区二区欧美日韩 | 亚洲国产美国国产综合一区二区| 国产91清纯白嫩初高中在线观看| 91精品国产一区二区三区蜜臀| 亚洲视频在线一区二区| 成人午夜电影久久影院| 2024国产精品| 激情深爱一区二区| 日韩女优毛片在线| 三级精品在线观看| 欧美亚洲动漫精品| 亚洲成人动漫av| 欧美三级电影在线看| 亚洲自拍另类综合| 欧洲一区二区三区免费视频| 亚洲欧美在线视频| av中文字幕在线不卡| 国产精品久久久久影院老司| 国产成a人亚洲精| 欧美激情一区二区三区不卡| 国产成人精品1024| 国产精品丝袜91| 99精品久久免费看蜜臀剧情介绍| 成人免费一区二区三区在线观看 | 色噜噜偷拍精品综合在线| 亚洲乱码精品一二三四区日韩在线| 成人午夜看片网址| 中文字幕一区视频| 欧洲精品视频在线观看| 五月天婷婷综合| 日韩三级伦理片妻子的秘密按摩| 日本成人在线看| 精品少妇一区二区三区在线视频| 蜜臀av国产精品久久久久| 久久综合九色综合97婷婷| 国产69精品一区二区亚洲孕妇| 欧美国产亚洲另类动漫| 色婷婷综合久久久久中文一区二区 | 成人一区二区视频| 亚洲欧美一区二区不卡| 欧美视频一区二区三区四区| 日韩福利视频导航| 国产视频一区二区在线| 日本乱人伦一区| 久久国产剧场电影| 国产精品动漫网站| 欧美一区二区三区电影| 国产成a人亚洲| 亚洲va韩国va欧美va精品| 久久久亚洲午夜电影| 99久久伊人精品| 美腿丝袜亚洲综合| 亚洲视频综合在线| 日韩一区二区三区三四区视频在线观看 | 一本色道久久综合亚洲91 | 精品在线免费视频| 亚洲欧洲日产国产综合网| 91麻豆精品国产自产在线 | 一区二区三区中文在线观看| 7777精品伊人久久久大香线蕉超级流畅| 麻豆精品国产91久久久久久| 中文字幕一区二区三区不卡在线 | 亚洲欧美日韩电影| 亚洲精品在线电影| 欧美日韩中文精品| 北条麻妃一区二区三区| 美女视频黄 久久| 一区二区成人在线| 国产精品美女一区二区三区 | 日本成人在线看| 亚洲三级在线观看| 国产日韩精品一区| 日韩欧美国产一区二区三区 | 九九视频精品免费| 天堂久久一区二区三区| 亚洲欧美一区二区视频| 国产亚洲精品免费| 日韩精品一区二区三区视频播放| 色国产综合视频| 99久久精品免费观看| 国产成人免费视频网站| 久草中文综合在线| 久久不见久久见免费视频1| 午夜一区二区三区视频| 亚洲免费av观看| 亚洲免费观看高清在线观看| 国产精品久久久久久久裸模 | 一区二区三区美女视频| 国产精品另类一区| 国产日本亚洲高清| 国产日韩亚洲欧美综合| 久久久一区二区三区捆绑**| 精品国精品国产尤物美女| 日韩欧美一二三区| 日韩精品一区二区三区swag| 91精品国产91久久综合桃花| 欧美一级片在线| 日韩欧美不卡一区| 亚洲精品在线免费观看视频| 久久综合国产精品| 国产精品午夜在线| 亚洲色图另类专区| 亚洲成人777| 久久精品国产秦先生| 久久精品国产99国产| 国产夫妻精品视频| av一区二区三区黑人| 色狠狠一区二区三区香蕉| 欧洲日韩一区二区三区| 欧美蜜桃一区二区三区| 欧美不卡一区二区三区四区| 久久久久97国产精华液好用吗| 国产欧美一区二区精品久导航 | 欧美三级电影在线看| 日韩一区二区三区四区| 国产三级久久久| 亚洲激情图片一区| 日本视频一区二区三区| 国内国产精品久久| 99视频国产精品| 337p亚洲精品色噜噜噜| 久久久久久久性| 亚洲精品视频一区二区| 美女www一区二区| www..com久久爱| 4438x亚洲最大成人网| 国产清纯白嫩初高生在线观看91 | 久久精品国产99| 大陆成人av片| 欧美日韩一卡二卡三卡| 久久先锋影音av鲁色资源网| 亚洲男人的天堂在线观看| 蜜桃在线一区二区三区| av电影一区二区| 日韩一区二区在线观看视频| 国产精品天干天干在观线| 日本亚洲电影天堂| 91久久精品日日躁夜夜躁欧美| 欧美电影精品一区二区| 一区二区三区在线不卡| 国产剧情一区二区| 欧美剧情片在线观看|