//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整理(叠加字符/图像合并)的更多相关文章

  1. 学习 opencv---(3) ROI 区域图像叠加&初级图像混合

    在这篇文章里,我们一起学习了在OpenCV中如何定义感兴趣区域ROI,如何使用addWeighted函数进行图像混合操作,以及将ROI和addWeighted函数结合起来使用,对指定区域进行图像混合操 ...

  2. javacpp-opencv图像处理之2:实时视频添加图片水印,实现不同大小图片叠加,图像透明度控制,文字和图片双水印

    欢迎大家积极开心的加入讨论群 群号:371249677 (点击这里进群) javaCV图像处理系列: javaCV图像处理之1:实时视频添加文字水印并截取视频图像保存成图片,实现文字水印的字体.位置. ...

  3. Leetcode 686.重复叠加字符串匹配

    重复叠加字符串匹配 给定两个字符串 A 和 B, 寻找重复叠加字符串A的最小次数,使得字符串B成为叠加后的字符串A的子串,如果不存在则返回 -1. 举个例子,A = "abcd", ...

  4. LeetCode 686. 重复叠加字符串匹配(Repeated String Match)

    686. 重复叠加字符串匹配 686. Repeated String Match 题目描述 给定两个字符串 A 和 B,寻找重复叠加字符串 A 的最小次数,使得字符串 B 成为叠加后的字符串 A 的 ...

  5. Java实现 LeetCode 686 重复叠加字符串匹配

    686. 重复叠加字符串匹配 给定两个字符串 A 和 B, 寻找重复叠加字符串A的最小次数,使得字符串B成为叠加后的字符串A的子串,如果不存在则返回 -1. 举个例子,A = "abcd&q ...

  6. matlab数据转换为字符串并合并字符串标注到图像曲线上

    1.把数字转换为字符串 [函数描述]str=num2str(A):把数组A中元素取小数点后四位,并转换为字符串. [函数实例]把数字转换为字符串,输入语句: str1=num2str(pi) str2 ...

  7. git整理纷乱的历史合并记录

    https://github.com/Epix37/Hearthstone-Deck-Tracker 以上面版本库的master分支为例 父节点1 SHA-1: a21142968282ae49720 ...

  8. opencv::将两幅图像合并后,在同一个窗口显示;并将合并的图像流保存成视频文件

    /** * @file main-opencv.cpp * @date July 2014 * @brief An exemplative main file for the use of ViBe ...

  9. Python-OpenCV中图像合并显示

    在图像处理中,我们通常需要将原图像与处理后的图像放在同一个窗口显示,这样便于比较. 首先,需要介绍Numpy中的两个函数:hstack().vstack(). 函数原型:hstack(tup) ,参数 ...

随机推荐

  1. NULL & nil & Nil & NSNULL的区别

    nil 是 OC 的,空对象,地址指向 空(0) 的对象 在 OC 中,可以给空对象发送任何消息,不会出现错误 NULL 是 C 的,空地址,地址的数值是 0,是一个长整数 表示地址是空 NSNull ...

  2. js监控视频播放的事件并打印log

    html代码: <!DOCTYPE html> <html> <head> <meta http-equiv="content-type" ...

  3. bzoj 2648 SJY摆棋子 kd树

    题目链接 初始的时候有一些棋子, 然后给两种操作, 一种是往上面放棋子. 另一种是给出一个棋子的位置, 问你离它最近的棋子的曼哈顿距离是多少. 写了指针版本的kd树, 感觉这个版本很好理解. #inc ...

  4. 记录一下自己用到的python logging

    最近想把自己零零散散写的代码嵌成一个应用,要考虑到各方面的debug,把logging看了一下,把用到的记下来. 将日志打印到屏幕 import logging logging.debug(u'调试' ...

  5. 现代OpenGL教程 01 - 入门指南

    原文链接传送门 译序 早前学OpenGL的时候还是1.x版本,用的都是glVertex,glNormal等固定管线API.后来工作需要接触DirectX9,shader也只是可选项而已,跟固定管线一起 ...

  6. More is better--hdu1856(并查集)

    More is better Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 327680/102400 K (Java/Others) ...

  7. 实现一个Memcpy函数:将源指针所指的区域从起始地址开始的n个字节复制到目的指针所指区域

    首先肯定要先看看这两部分是不是有内存重叠?为什么? 1.因为如果有内存重叠(目的地址起始位置处于源指针所指区域之中),你再从起始位置复制的话,这样目的地址改变的时候将源地址内存里面存的东西给改变了,所 ...

  8. javascript中的动画的实现以及运动框架的编写(1)

    大家知道js可以做出好多很漂亮的动画,看上去很神奇,其实原理很简单,今天就讨论一下js动画的实现以及如何编写可以反复重用的运动框架. 首先做一个简单的例子,我这里有一个长50px 宽20px的长条形d ...

  9. VS2012编译Snmp++ v3.2.25

    VS2012编译Snmp++ v3.2.25跟用VC6/VC2010等编译方法区别不大. 网上和教程上盛传的方式是把snmp++的cpp源文件和头文件都加到工程里,再编译.我觉得添加所有头文件到工程里 ...

  10. ubuntu 10.10配置NFS网络共享步骤

    安装好交叉编译环境arm-linux-gcc之后,就开始配置NFS网络共享,用于不同的linux主机与目标机之间文件的共享.如果是windows和linux的共享则需用samba服务. NFS(Net ...