zoukankan      html  css  js  c++  java
  • CxImage透明图片合成和文字叠加

    1         CxImage的作用

    CxImage将几张图片合成一张图片,在一张底图上添加图片,有些图片是有透明效果的,实现图片之间的透明重叠效果。另外还可以添加文字。

    (1)背景图片mymix.png

    (2)角标图片,左下角为透明的,black.png和snap.png

    (3)字图片1MixImage1.jpgMixImage2.jpg

    (4)合成后图片效果图

    现在的目标就是将(2),(3)中的有透明的图片和不透明的图片合成到背景图片(1)上,实现图片(4)中的效果。

    1         CxImage合成实例

    CxImage imageMix;//合成后的图片

    CxImage imagesy1;//子图片1

    CxImage imagesy2;//字图片2

    CxImage imagesysnapfalg1;//透明图片1

    CxImage imagesyblackflag2;//透明图片2

    CxImage::CXTEXTINFO  BlackName, BlackSex, UserCardId, CompareSimilarity, SnapPicTime, CaseDescrip;//图片叠加文字

    imagesy1.load("MixImage1.jpg", CXIMAGE_FORMAT_JPG);//加载子图片1

    imagesy2. Load ("MixImage2.jpg", CXIMAGE_FORMAT_JPG);//加载字图片2

    imagesy1.Resample(340, 340, 0, &imagesy1);//设置子图片大小

    imagesy2.Resample(340, 340, 0, &imagesy2);    

    //加载背景图片                  

    if (imageMix.Load(_T("mymix.png"), CXIMAGE_FORMAT_JPG))

    {     //将两张子图片合成到背景图片上

           imageMix.MixFrom(imagesy2, 35, 398);//图片相对左下角,文字相对左上角

    imageMix.MixFrom(imagesy1, 35, 28);//加入第一张子图片

    //将带有一半透明的图片合成到背景上

    imagesysnapfalg1.Load(_T("snap.png"),CXIMAGE_FORMAT_JPG);

           imagesysnapfalg1.Resample(78,78,0,&imagesysnapfalg1);

           imagesysnapfalg1.SetTransIndex(255);//设置图片的透明度0不透明,255完全透明

           imageMix.MixFrom(imagesysnapfalg1,297,398+261);

    //将带有一半透明的图片合成到背景上

           imagesyblackflag2.Load(_T("black.png"),CXIMAGE_FORMAT_JPG);

           imagesyblackflag2.Resample(78,78,0,&imagesyblackflag2);

           imagesyblackflag2.SetTransIndex(255);

           imageMix.MixFrom(imagesyblackflag2,297,290);

           //初始化叠加文字结构体

    imageMix.InitTextInfo(&BlackName);

           imageMix.InitTextInfo(&BlackSex);

           imageMix.InitTextInfo(&UserCardId);

           imageMix.InitTextInfo(&CompareSimilarity);

           imageMix.InitTextInfo(&SnapPicTime);

           imageMix.InitTextInfo(&CaseDescrip);

    //设置文字的属性

    _stprintf(BlackName.lfont.lfFaceName, _T("微软雅黑"));//字体

    BlackName.lfont.lfCharSet = GB2312_CHARSET;//字符集

    BlackName.lfont.lfHeight = 40;//高度

    BlackName.fcolor = RGB(255, 255, 255);//颜色

    BlackName.opaque = 0;

    _stprintf(BlackSex.lfont.lfFaceName, _T("微软雅黑"));

    BlackSex.lfont.lfCharSet = GB2312_CHARSET;

    BlackSex.lfont.lfHeight = 40;

    BlackSex.fcolor = RGB(255, 255, 255);

    BlackSex.opaque = 0;

     

    _stprintf(UserCardId.lfont.lfFaceName, _T("微软雅黑"));

    UserCardId.lfont.lfCharSet = GB2312_CHARSET;

    UserCardId.lfont.lfHeight = 40;

    UserCardId.fcolor = RGB(255, 255, 255);

    UserCardId.opaque = 0;

     

    _stprintf(CompareSimilarity.lfont.lfFaceName, _T("微软雅黑"));

    CompareSimilarity.lfont.lfCharSet = GB2312_CHARSET;

    CompareSimilarity.lfont.lfHeight = 40;

    CompareSimilarity.fcolor = RGB(255, 255, 255);

    CompareSimilarity.opaque = 0;

     

    _stprintf(SnapPicTime.lfont.lfFaceName, _T("微软雅黑"));

    SnapPicTime.lfont.lfCharSet = GB2312_CHARSET;

    SnapPicTime.lfont.lfHeight = 40;

    SnapPicTime.fcolor = RGB(255, 255, 255);

    SnapPicTime.opaque = 0;

     

    _stprintf(CaseDescrip.lfont.lfFaceName, _T("微软雅黑"));

    CaseDescrip.lfont.lfCharSet = GB2312_CHARSET;

    CaseDescrip.lfont.lfHeight = 40;

    CaseDescrip.fcolor = RGB(255, 255, 255);

    CaseDescrip.opaque = 0; //背景

    //从结构体中输入文字的值

    float similarity = sFasData.fSimilarity * 100;

    sprintf_s(UserCardId.text, "%s", sFasData.strBlackCerNo.c_str());

    sprintf_s(SnapPicTime.text, "%s", sFasData.strSnapTime.c_str());

    sprintf_s(CompareSimilarity.text, "%0.*f", 2, similarity);

    sprintf_s(BlackName.text,"%s",sFasData.strBlackName.c_str());

     

    std::string strCaseDescrip = "未知";

    //开始将文字叠加到图片

    imageMix.DrawStringEx(0, 710, 138, &SnapPicTime);

    imageMix.DrawStringEx(0, 679, 198, &CompareSimilarity);

    imageMix.DrawStringEx(0, 519, 518, &BlackName);

    imageMix.DrawStringEx(0, 509, 574, &BlackSex);

    imageMix.DrawStringEx(0, 690, 638, &UserCardId);

    }

    自己编了一个股票监控软件,有如下功能,有兴趣的朋友可以下载;

    (1)   个股监测。监测个股实时变化,可以监测个股大单交易、急速拉升和下降、主力入场和出场、股票最高点和最低点提醒。检测到最高点、最低点、主力进场点、主力退场点、急速拉升点、急速下跌点,给出语音或者声音提醒,不用再时刻看着大盘了,给你更多自由的时间;

    (2)   大盘监测。监测大盘的走势,采用上证、深证、创业三大指数的综合指数作为大盘走势。并实时监测大盘的最高点和最低点、中间的转折点。

    (3)   股票推荐。还能根据历史数据长期或短期走势进行分析,对股市3千多个股票进行分析对比,选出涨势良好的股票,按照增长速度从大到小排序,推荐给你涨势良好的股票;

    下载地址:

    1.0.3版本(修复大盘指数崩溃缺陷)下载地址:

    链接:https://pan.baidu.com/s/1BJcTp-kdniM7VE9K5Kd3vg 提取码:003h

    更新链接:

    https://www.cnblogs.com/bclshuai/p/10621613.html

  • 相关阅读:
    详解如何在vue项目中引入饿了么elementUI组件
    移动端Web页面适配方案
    蛋糕仙人的javascript笔记
    小程序框架细节系列
    微信小程序 获取用户信息并保存登录状态
    (尚006)Vue计算属性之set与get
    (尚004)Vue计算属性之基本使用和监视
    (尚003).Vue_模板语法
    (尚002)Vue的基本使用
    (尚001)Vue框架介绍
  • 原文地址:https://www.cnblogs.com/bclshuai/p/9936935.html
Copyright © 2011-2022 走看看