CxImage整理(叠加字符/图像合并)
//CxImage叠加字符
void CCxImageTestDlg::OnBnClickedButton1()
{
CxImage imgJPG; // 定义一个CxImage对象
imgJPG.Load("1.jpg", CXIMAGE_FORMAT_JPG); //先装载jpg文件
// 判断加载的jpg文件是否存在。
if (imgJPG.IsValid())
{
//得到文件对应的HBITMAP
HBITMAP hbmp = imgJPG.MakeBitmap(); HWND hwnd = GetSafeHwnd();
HDC hdc = ::GetDC(hwnd); HDC hdcMem = ::CreateCompatibleDC(hdc);
SelectObject(hdcMem, hbmp); RECT rc = {, , , };
::SetBkMode(hdcMem, TRANSPARENT);
::DrawText(hdcMem, "Hello World.", -, &rc, DT_VCENTER); CxImage imgBmp;
imgBmp.CreateFromHBITMAP(hbmp);
imgBmp.Save("1jpg.jpg", CXIMAGE_FORMAT_JPG); ::ReleaseDC(hwnd, hdc);
::DeleteDC(hdcMem);
::DeleteDC(hdc);
}
} //左右合并两张图片,合并后的图片与原图等高;上下合并可类推。
//如果只是在图1上嵌入图2,处理后的图还是和图1的高宽一样。则只需要用MixFrom函数
void mergerImage(void)
{
CxImage img1,img2,img3;
int h1,w1,h2,w2,h3,w3,bpp; img1.Load("F:\\1.jpg");
img2.Load("F:\\2.jpg"); h1=img1.GetHeight();
w1=img1.GetWidth(); h2=img2.GetHeight();
w2=img2.GetWidth(); h3=h1;
w3=w1+w2; bpp=img1.GetBpp(); img3.Create(w3,h3,bpp);
img3.MixFrom(img1,,);
img3.MixFrom(img2,w1,); img3.Save("f:\\3.jpg",CXIMAGE_FORMAT_JPG);
}
//图片裁剪
CxImage image;
bool bRet = image.Load("1.jpg");
CxImage smallImg;
bRet = image.Crop(,,,, &smallImg); uint8_t* buffer = ;
int32_t size = ;
smallImg.Encode(buffer, size, CXIMAGE_FORMAT_JPG);
std::string sData = std::string((char*)buffer, size);
smallImg.FreeMemory(buffer); bRet = smallImg.Save("2.jpg",CXIMAGE_SUPPORT_JPG);
图像旋转
image.Rotate(angle);
image.RotateLeft();
image.RotateRight();
CxImage整理(叠加字符/图像合并)的更多相关文章
- 学习 opencv---(3) ROI 区域图像叠加&初级图像混合
在这篇文章里,我们一起学习了在OpenCV中如何定义感兴趣区域ROI,如何使用addWeighted函数进行图像混合操作,以及将ROI和addWeighted函数结合起来使用,对指定区域进行图像混合操 ...
- javacpp-opencv图像处理之2:实时视频添加图片水印,实现不同大小图片叠加,图像透明度控制,文字和图片双水印
欢迎大家积极开心的加入讨论群 群号:371249677 (点击这里进群) javaCV图像处理系列: javaCV图像处理之1:实时视频添加文字水印并截取视频图像保存成图片,实现文字水印的字体.位置. ...
- Leetcode 686.重复叠加字符串匹配
重复叠加字符串匹配 给定两个字符串 A 和 B, 寻找重复叠加字符串A的最小次数,使得字符串B成为叠加后的字符串A的子串,如果不存在则返回 -1. 举个例子,A = "abcd", ...
- LeetCode 686. 重复叠加字符串匹配(Repeated String Match)
686. 重复叠加字符串匹配 686. Repeated String Match 题目描述 给定两个字符串 A 和 B,寻找重复叠加字符串 A 的最小次数,使得字符串 B 成为叠加后的字符串 A 的 ...
- Java实现 LeetCode 686 重复叠加字符串匹配
686. 重复叠加字符串匹配 给定两个字符串 A 和 B, 寻找重复叠加字符串A的最小次数,使得字符串B成为叠加后的字符串A的子串,如果不存在则返回 -1. 举个例子,A = "abcd&q ...
- matlab数据转换为字符串并合并字符串标注到图像曲线上
1.把数字转换为字符串 [函数描述]str=num2str(A):把数组A中元素取小数点后四位,并转换为字符串. [函数实例]把数字转换为字符串,输入语句: str1=num2str(pi) str2 ...
- git整理纷乱的历史合并记录
https://github.com/Epix37/Hearthstone-Deck-Tracker 以上面版本库的master分支为例 父节点1 SHA-1: a21142968282ae49720 ...
- opencv::将两幅图像合并后,在同一个窗口显示;并将合并的图像流保存成视频文件
/** * @file main-opencv.cpp * @date July 2014 * @brief An exemplative main file for the use of ViBe ...
- Python-OpenCV中图像合并显示
在图像处理中,我们通常需要将原图像与处理后的图像放在同一个窗口显示,这样便于比较. 首先,需要介绍Numpy中的两个函数:hstack().vstack(). 函数原型:hstack(tup) ,参数 ...
随机推荐
- WCF方式调用asmx设置cookie
以前旧的方式去调用web service, 可以通过CookieContainer去设置cookie,改用WCF方式去调用,则必须配置allowCookies属性为true <system.se ...
- 为什么所有浏览器的userAgent都带Mozilla
参看下面链接:<为什么所有的浏览器的userAgent都带Mozilla>
- JavaMail发送简单邮件
非常简单的发送邮件实现,网上有很多啦,但还是自己写写记录下吧. package cn.jmail.test; import java.util.Properties; import javax.mai ...
- mysql的分页存储过程,能够传出总记录数
最近用mysql + asp.net来写网站,既然mysql已经支持存储过程了,那么像分页这么常用的东西,当然要用存储过程啦 不过在网上找了一些,发现都有一个特点——就是不能传出总记录数,干脆自己研究 ...
- maven命令/依赖/聚合
一,编写pom.xml 首先我们看一下pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns ...
- Ajax 用法, 实现方法,JS原生与JQ实现
AJAX 详解 ajax是实现页面异步加载. 常用于, 前后端数据交互, 实现前端页面无刷新更改操作. 是web前端和后端使用者开发的必备使用技能~~ Ajax操作~ : 俗话原理 : 用俗话来 ...
- swift笔记06
for in循环 for 被乘数 in 1...5{ println("\(被乘数) 乘以 5 等于 \( 被乘数 * 5)"); } let 女神们 = ["小林&q ...
- webpack ------require,ensure
require-ensure和require-amd的区别: require-amd 说明: 同AMD规范的require函数,使用时传递一个模块数组和回调函数,模块都被下载下来且都被执行后才执行回调 ...
- 混合使用Azure LB和ILB访问相同web服务(3)
接下来我们来配置Azure Load balancer,就是面向公网的负载均衡器: 1.在该测试中,为了保持内网访问和外网访问一样的体验,本地端口和public端口和ILB一样,同样是80: PS C ...
- XML的DTD约束
DTD约束:DTD的声明和引用 1.内部DTD文档 <!DOCTYPE 根元素 [定义内容]> 2.外部DTD文档 <!DOCTYPE 根元素 SYSTEM "DTD文件路 ...