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) ,参数 ...
随机推荐
- What is SignalR and Why Should I Use It?
原文地址: What is SignalR and why should I use it? When I first heard about SignalR, I was not sure what ...
- Intel 编译Boost库
C:\Windows\SysWOW64\cmd.exe /E:ON /V:ON /K ""C:\Program Files (x86)\Intel\Composer XE 2013 ...
- 原生化:AnDevCon 2014 McVeigh 的主题演讲
作者:Jeff McVeigh(Intel) 基于(至少部分)NDK的原生安卓应用程序占现在前1000 强的 60% 以上.该增长的原因很简单:开发商需要为用户提供超卓的体验(包括灵敏的反应.与丰富的 ...
- Python 读取csv文件到excel
朋友问我如何通过python把csv格式的文件另存为xls文件,自己想了想通过读取csv文件然后再保存到xls文件中即可,也许还有其他简单的方法,但这里也为了练习python语法及其他知识,所以采用了 ...
- SQL Server 对象
第一项:重命名对象 execute sp_rename @objname='Nums',@newname ='Numbers',@objtype ='object'; go 这里要特别小心 @ne ...
- Vector, ArrayList, Array
JAVA新手在使用JAVA的时候大概都会遇到这个问题: JAVA中的Array, ArrayList, Vector, List, LinkedList有什么样的区别?尤其是Vector, Array ...
- 【Sqlserver清空数据库中所有表数据】
脚本: CREATE PROCEDURE sp_DeleteAllData AS EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT AL ...
- UVA 12902 Reverse Polish Notation
//跟wyr学的//其实是贪心//题解稍后补上 #include<cstdio> #include<iostream> #include<cmath> #inclu ...
- hdu 4497 GCD and LCM 质因素分解+排列组合or容斥原理
//昨天把一个i写成1了 然后挂了一下午 首先进行质因数分解g=a1^b1+a2^b2...... l=a1^b1'+a2^b2'.......,然后判断两种不可行情况:1,g的分解式中有l的分解式中 ...
- 借贷宝推广得现金是真的_注册就送人民币20元_邀请码CRJYQTK
动动手指,20元立即到手.即优步uber打车和滴滴专车豪投数亿元争夺专车市场之后,一款名为借贷宝的APP推广在网上流传开来,目前主要看重的就是它的推广力度,豪投20亿让大众来推广.简单流程:下载借贷宝 ...