图像与区域的结合

  1. 在其中一个源代码文件中添加以下代码行(例如:IMPORTS.CPP).

    //请注意将路径更改为系统上的LEADTOOLS工具包位置。在(WIN64)下添加以下行:# pragma评论(自由,"..\\..\\..\\ 自由”L_VER_DESIGNATOR“\ \ CDLL \ \ x64 \ \ Ltimgefx_x.lib”# pragma评论(自由,"..\\..\\..\\ 自由”L_VER_DESIGNATOR“\ \ CDLL \ \ x64 \ \ Ltdis_x.lib”# pragma评论(自由,"..\\..\\..\\ 自由”L_VER_DESIGNATOR“\ \ CDLL \ \ x64 \ \ Ltfil_x.lib”在(WIN32)下添加以下行:# pragma评论(自由,"..\\..\\..\\ 自由”L_VER_DESIGNATOR“\ \ CDLL \ \ Win32 \ \ Ltimgefx_u.lib”# pragma评论(自由,"..\\..\\..\\ 自由”L_VER_DESIGNATOR“\ \ CDLL \ \ Win32 \ \ Ltdis_u.lib”# pragma评论(自由,"..\\..\\..\\ 自由”L_VER_DESIGNATOR“\ \ CDLL \ \ Win32 \ \ Ltfil_u.lib”

  2. 包含以下头文件:
    (请注意将路径更改为系统上的LEADTOOLS工具包位置。)

    # include"../../../ L_Bitmap.h”

  3. 定义以下全局变量:

    HWND hWndClient;/*当前子窗口的句柄RGNXFORM变换;/*用于转换显示坐标的结构矩形rClientArea;/*当前窗口的客户端区域*/矩形rRgnRect;/*定义区域*/的矩形BITMAPHANDLE BitmapDst;/*目标位图*/BITMAPHANDLE BitmapSrc;/*源位图*/L_INT XDst;/*目标的列偏移量*/L_INT YDst;/*目标行偏移量*/L_INT XSize;/*组合矩形的像素宽度*/L_INT YSize;/*要合并的矩形像素高度*/L_INT XSrc;/*源的列偏移量*/L_INT YSrc;/*源的列偏移量*/

  4. 加载两张图片,如下所示:

    L_LoadBitmap (MAKE_IMAGE_PATH(文本(“sample1.cmp”&BitmapDst)),运算符(bitmaphandle), 0, order_bgr, null, null);L_LoadBitmap (MAKE_IMAGE_PATH(文本(“sample2.cmp”&BitmapSrc)),运算符(bitmaphandle), 0, order_bgr, null, null);

  5. 获取当前子窗口的客户端区域,如下所示:

    GetClientRect (hWndClient &rClientArea);

  6. 设置RGNXFORM字段,假设显示矩形与当前子窗口的客户端区域相同,如下所示:

    XForm。uViewPerspective = TOP_LEFT;XForm。nXScalarNum = BITMAPWIDTH(&BitmapDst);XForm。nXScalarDen = rClientArea.right;XForm。nYScalarNum = BITMAPHEIGHT(&BitmapDst);XForm。nYScalarDen = rClientArea.bottom;XForm。nXOffset = 0;XForm。nYOffset = 0;

  7. 指定一个矩形来定义区域,然后创建一个矩形区域,如下所示:

    SetRect (&rRgnRect rClientArea。正确的/ 8,rClientArea。底/ 8,rClientArea。/ 2, rClientArea.bottom / 2);L_SetBitmapRgnRect(&BitmapDst, &XForm, &rRgnRect, L_RGN_SET);

  8. 在显示图像的左上角指定一个位置,并使用源位图的完整大小,如下所示:

    XDst = BITMAPWIDTH(&BitmapDst) / 8;YDst = BITMAPHEIGHT(&BitmapDst) / 8;YSize = BITMAPHEIGHT(&BitmapSrc);XSize = BITMAPWIDTH(&BitmapSrc);XSrc = 0;YSrc = 0;

  9. 结合BitmapDst和&BitmapSrc,使用普通粘贴的标志,并保存结果:

    L_CombineBitmap(&BitmapDst, XSize, YSize, XDst, YDst, &BitmapSrc, XSrc, YSrc, CB_OP_ADD | CB_DST_0);L_SaveBitmap (MAKE_IMAGE_PATH(文本(“test_region.bmp”)), &BitmapDst, FILE_BMP, 0, 2, NULL);

  10. 最后,你应该释放矩形:

    L_FreeBitmapRgn (&BitmapDst);

栅格成像C API帮助
188金宝搏的网址客服|支持|联系我们|知识产权公告
©1991 - 2021领德科技有限公司版权所有。