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 = {50, 50, 200, 200};
        ::SetBkMode(hdcMem, TRANSPARENT);
        ::DrawText(hdcMem, "Hello World.", -1, &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,0,0);
    img3.MixFrom(img2,w1,0);

    img3.Save("f:\\3.jpg",CXIMAGE_FORMAT_JPG);
}
时间: 2024-08-09 10:44:52

CxImage整理(叠加字符/图像合并)的相关文章

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

1.把数字转换为字符串 [函数描述]str=num2str(A):把数组A中元素取小数点后四位,并转换为字符串. [函数实例]把数字转换为字符串,输入语句: str1=num2str(pi) str2=num2str(eps) 输出结果: str1 =3.1416 str2 =2.2204e-016 2.字符串合并 strcat(str1,str2,-.,strn); 将str1,str2,-strn合并成为一个字符串 3.通过 gtext(str);可以把字符串标注到图像上面,注意str一定要

【OpenCV入门教程之四】 ROI区域图像叠加&初级图像混合 全剖析(转)

本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/20911629 作者:毛星云(浅墨)    邮箱: [email protected] 写作当前博文时配套使用的OpenCV版本: 2.4.8 在这篇文章里,我们一起学习了在OpenCV中如何定义感兴趣区域ROI,如何使用addWeighted函数进行图像混合操作,以及将ROI和addWeighted函数结合起来使用,对指定区域进行图像

【练习4.1】图像转换、Canny检测、图像合并、在图像上输出文字

2014-07-17 第四章 细说HighGUI 练习题第1题 题目大致要求: a:(1)从视频文件读入数据,(2)转换为灰度图,(3)做Canny边缘检测,显示在三个窗口 b:将a的三个视频显示在一个窗口中 c:在b步骤的不同部分写上合适的文字标签 代码: 1 #include "stdafx.h" 2 #include <windows.system.h> 3 #include <iostream> 4 #include <cv.h> 5 #in

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

重复叠加字符串匹配 给定两个字符串 A 和 B, 寻找重复叠加字符串A的最小次数,使得字符串B成为叠加后的字符串A的子串,如果不存在则返回 -1. 举个例子,A = "abcd",B = "cdabcdab". 答案为 3, 因为 A 重复叠加三遍后为 "abcdabcdabcd",此时 B 是其子串:A 重复叠加两遍后为"abcdabcd",B 并不是其子串. 注意: A 与 B 字符串的长度在1和10000区间范围内. 思

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

https://github.com/Epix37/Hearthstone-Deck-Tracker 以上面版本库的master分支为例 父节点1 SHA-1: a21142968282ae49720cf30a0f18290b2ce74b3a * remove hotkey from config if action could not be found, fix hotkey menu item name 父节点2 SHA-1: 86a824e8f46005db91f334dfc57b6bb5

ROI区域图像叠加&amp;初级图像混合 综合实例

将addWeighted函数与ROI函数封装到ROI_LinearBlending中 //---------------------------------[ROI_LinearBlending()]------------------------------------- // 函数名:ROI_LinearBlending() // 描述:线性混合实现函数,指定区域线性图像混合.利用cv::addWeighted()函数结合定义 // 感兴趣区域ROI,实现自定义区域的线性混合 //-----

CxImage内存方式转换图像

最近,处于项目需要,需要将Bmp转换为JPEG格式.以前做过,采用的是GDI+的方式,该方式有一个极大地缺陷为无法实现跨平台处理.闲话少说,进入正题. [cpp] view plain copy CxImage cxImageBmp(pRGBBuffer, dwRGBSize, CXIMAGE_FORMAT_BMP); cxImageBmp.Save("D:\\ttt.jpg",CXIMAGE_FORMAT_JPG); 该方式很正常,顺利将RGB格式24位BMP图像转化为本地JPG文件

Python-OpenCV中图像合并显示

在图像处理中,我们通常需要将原图像与处理后的图像放在同一个窗口显示,这样便于比较. 首先,需要介绍Numpy中的两个函数:hstack().vstack(). 函数原型:hstack(tup) ,参数tup可以是元组,列表,或者numpy数组,返回结果为numpy的数组.看下面的代码体会它的含义: import numpy as np a=[1,2,3] b=[4,5,6] print(np.hstack((a,b))) 输出:[1 2 3 4 5 6 ] import numpy as np

RGB图像数据字符叠加,图像压缩(ijl库),YUV转RGB

jackyhwei 发布于 2010-01-01 12:02 点击:3218次  来自:CSDN.NET 一些非常有用的图像格式转换及使用的源代码,包括RGB图像数据字符叠加,图像压缩(ijl库),YUV转RGB等等. TAG: YUV  YUV转RGB  RGB  BMP转JPG  文字叠加   /**************************************File: yuvrgb24.hDescription: header file for yuvrgb24.cDate: