CxImage透明图片合成和文字叠加
1 CxImage的作用
CxImage将几张图片合成一张图片,在一张底图上添加图片,有些图片是有透明效果的,实现图片之间的透明重叠效果。另外还可以添加文字。
(1)背景图片mymix.png
(2)角标图片,左下角为透明的,black.png和snap.png
(3)字图片1MixImage1.jpg和MixImage2.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);
}
CxImage透明图片合成和文字叠加的更多相关文章
- php 图片合成时文字颜色丢失
最近在做图片合成的时候无意间发现文字颜色丢失了,仔细找了以后才发现原来是因为图片格式的原因 当图片是png图片时文字的颜色就变成了白色的,So.........去你妹的png,用jpg吧! $dest ...
- PHP图片加水印文字及图片合成缩放
<?php //图片添加文字水印 /*$bigImgPath = 'background.png'; $img = imagecreatefromstring(file_get_contents ...
- android 文字图片合成
引用:http://blog.csdn.net/cq361106306/article/details/8142526 两种方法: 1.直接在图片上写文字 String str = "PIC ...
- php 图片添加文字水印 以及 图片合成(微信快码传播)
1.图片添加文字水印: $bigImgPath = 'backgroud.png'; $img = imagecreatefromstring(file_get_contents($bigImgPat ...
- iOS 图片水印、图片合成文字或图片实现
这个需求可能有时候会碰到,比如自己的照片加版权,打水印等 网上的方法,有不少感觉不全对,或者需求不是特全,这里我总结了3种场景下的需求: 1.本地图片合成文字 2.本地图片合成图片 3.网络图片先下载 ...
- 移动端canvas文字图片合成并生成图片(canvas宽度自适应移动端屏幕)
这是我之前做的一个关于文字图片合成的代码,供大家参考,不足支出还望体谅:具体的注释在代码里都有,有什么不懂了可以留言互相交流.<!DOCTYPE html> <html lang=& ...
- C#实现图片叠加,图片上嵌入文字,文字生成图片的方法
/// <summary> /// 图片叠加 /// </summary> /// <param name="sender"& ...
- WPF 下两种图片合成或加水印的方式(转载)
来源:http://www.cnblogs.com/lxblog/ 最近项目中应用多次应用了图片合成,为了今后方便特此记下. 在WPF下有两种图片合成的方式,一种还是用原来C#提供的GDI+方式,命名 ...
- ImageCombiner - Java服务端图片合成的工具包,好用!
自己的第一个也是唯一一个开源项目,因为平时比较懒,很少做宣传,今天刚好突破160个star,发到园子里推荐给大家,算是庆祝一下,哈. 项目地址:https://gitee.com/opensource ...
随机推荐
- python的反射函数(hasattr()、getattr()、setattr()与delattr())和类的内置属性attr(__getattr()__、__setattr()__与__delattr()__)
主要是指程序可以访问.检测和修改它本身状态或行为的一种能力(自省),有四个可以实现自省函数. hasattr(object,name) 判断object中是否有name字符串对应的属性或方法,返回Tr ...
- P2233 [HNOI2002]公交车路线
洛咕原题 dp->矩阵乘法 首先我们可以得出一个状态转移方程 f[i][j]=f[i-1][j-1]+f[i-1][j+1] 蓝后发现,我们可以把这转化为一个8*8的转移矩阵 然后跑一遍矩阵快速 ...
- linux下配置nginx使用ftp目录作为静态资源文件的目标目录
1.安装ftp服务,可以直接yum install vsftpd. 2.设置随机启动,chkconfig vsftpd on. 3.启动ftp服务,service vsftpd start. 4.配置 ...
- log4j配置目标到mongodb
首先,具体采用什么技术作为集中式存储方案在99%的应用中应该来说并没有多大区别,最重要的是要定期清理不必要的日志,以及日志格式设计(也可以重写org.log4mongo.MongoDbPatternL ...
- Docker 微服务教程(搭建真正的网站)
Docker 是一个容器工具,提供虚拟环境.很多人认为,它改变了我们对软件的认识. 站在 Docker 的角度,软件就是容器的组合:业务逻辑容器.数据库容器.储存容器.队列容器......Docker ...
- 【题解】luogu P3386 【模板】二分图匹配
题面:https://www.luogu.org/problemnew/show/P3386 好像没有人发Ford-Fulkerson,我来一发, 这道题和P2756飞行员配对方案问题方法一样,网络流 ...
- 新手安装Ubuntu操作系统
新手安装 Ubuntu 操作系统 版权声明:未经博主授权,内容严禁转载分享! 最近学习linux编程,需要安装一个 Ubuntu 操作系统,由于虚拟机的体验不是很好,所以便在电脑上试下装双系统.嘿嘿. ...
- Ajax详细剖析
概述 对于WEB应用程序:用户浏览器发送请求,服务器接收并处理请求,然后返回结果,往往返回就是字符串(HTML),浏览器将字符串(HTML)渲染并显示浏览器上. 传统的Web应用 一个简单操作需要重新 ...
- samtools can not find libbz2.so.1.0
Error: samtoolssamtools: error while loading shared libraries: libbz2.so.1.0: cannot open shared obj ...
- P5091 【模板】欧拉定理
思路 欧拉定理 当a与m互质时 \[ a^ {\phi (m)} \equiv 1 \ \ (mod\ m) \] 扩展欧拉定理 当a与m不互质且\(b\ge \phi(m)\)时, \[ a^b \ ...