cximage mix 注意图像合成时内部坐标

2024-09-02 18:58

本文主要是介绍cximage mix 注意图像合成时内部坐标,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

double h1,w1,h2,w2,h3,w3,h4,w4,bpp;
    //getheight(w4,h4);
    CString spath1 = _T("测试1");
    CString spath2 = _T("测试2");
    CString spath3 = _T("测试3");
    CStringArray arraystr;
    arraystr.Add(spath1);arraystr.Add(spath2);arraystr.Add(spath3);


    CxImage img1,img2,img3,img4;
    
    CxImage imgarray[3];
    
    img1.Load("D:\\z1.jpg");
    img2.Load("D:\\z2.jpg");
    img3.Load("D:\\z3.jpg");

    h1=img1.GetHeight();
    w1=img1.GetWidth();

    h2=img2.GetHeight();
    w2=img2.GetWidth();

    h3=img3.GetHeight();
    w3=img3.GetWidth();

    h4 = h1 + h2 + h3;
    w4 = max(w3,max(w1,w2));
    bpp=img1.GetBpp();
    img4.Create(w4,h4,bpp);
    /*img4.MixFrom(img1,0,h1+h2);
    img4.MixFrom(img2,0,h1);
    img4.MixFrom(img3,0,0);*/
    // Y轴上方为负数;
    img4.Mix(img1, CxImage::ImageOpType::OpScreen,0,-h3-h2);
    img4.Mix(img2,CxImage::ImageOpType::OpScreen,0,-h3);
    img4.Mix(img3,CxImage::ImageOpType::OpScreen,0,0);
    if (img4.IsValid())
    {
        for(int idx=0; idx <3; ++idx)
        {
            CString sFormat = arraystr[idx];
            CxImage::CXTEXTINFO  textword;

            img4.InitTextInfo( &textword );

            _stprintf( textword.lfont.lfFaceName,  _T("Times New Roman"));
            textword.lfont.lfCharSet   =  GB2312_CHARSET  ;
            textword.lfont.lfHeight      =20; 
            textword.lfont.lfWeight    =  40 ;
            textword.lfont.lfItalic    =  0 ; 
            textword.lfont.lfUnderline =  0 ; 
            textword.fcolor =  RGB( 0,0,0 );
            textword.bcolor = RGB(   150, 205,205 );
            textword.opaque =  0; //背景
            textword.b_opacity = (float)(0)/(float)100.;  //透明度
            textword.b_round   = (BYTE) 1 ; //四舍五入为背景矩形半径
            //_stprintf( textword.text, _T("水印文字") );
            
            //sFormat.Format(_T("测试%d"),idx+1);
            memset(textword.text,0,sizeof(TCHAR)*255);
            for(int i=0; i < sFormat.GetLength(); ++i)
            {
                textword.text[i] = sFormat.GetAt(i);
            }
            if(idx==0)
            {
                img4.DrawStringEx(0,w1/2.0,h1,&textword);
            }
            if(idx==1)
            {
                img4.DrawStringEx(0,w1/2.0,h1+h2,&textword);
            }
            if(idx==2)
            {
                img4.DrawStringEx(0,w1/2.0,h1+h2+h3,&textword);
            }
            
        }
        
    }

    img4.Save("D:\\z4.jpg",CXIMAGE_FORMAT_JPG);

这篇关于cximage mix 注意图像合成时内部坐标的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1130792

相关文章

基于WinForm+Halcon实现图像缩放与交互功能

《基于WinForm+Halcon实现图像缩放与交互功能》本文主要讲述在WinForm中结合Halcon实现图像缩放、平移及实时显示灰度值等交互功能,包括初始化窗口的不同方式,以及通过特定事件添加相应... 目录前言初始化窗口添加图像缩放功能添加图像平移功能添加实时显示灰度值功能示例代码总结最后前言本文将

基于人工智能的图像分类系统

目录 引言项目背景环境准备 硬件要求软件安装与配置系统设计 系统架构关键技术代码示例 数据预处理模型训练模型预测应用场景结论 1. 引言 图像分类是计算机视觉中的一个重要任务,目标是自动识别图像中的对象类别。通过卷积神经网络(CNN)等深度学习技术,我们可以构建高效的图像分类系统,广泛应用于自动驾驶、医疗影像诊断、监控分析等领域。本文将介绍如何构建一个基于人工智能的图像分类系统,包括环境

购买磨轮平衡机时应该注意什么问题和技巧

在购买磨轮平衡机时,您应该注意以下几个关键点: 平衡精度 平衡精度是衡量平衡机性能的核心指标,直接影响到不平衡量的检测与校准的准确性,从而决定磨轮的振动和噪声水平。高精度的平衡机能显著减少振动和噪声,提高磨削加工的精度。 转速范围 宽广的转速范围意味着平衡机能够处理更多种类的磨轮,适应不同的工作条件和规格要求。 振动监测能力 振动监测能力是评估平衡机性能的重要因素。通过传感器实时监

SpringMVC入参绑定特别注意

1.直接在controller中定义一个变量,但是此种传输方式有一个限制就是参数名和请求中的参数名必须保持一致,否则失效。 @RequestMapping("test2")@ResponseBodypublic DBHackResponse<UserInfoVo> test2(String id , String name){UserInfoVo userInfoVo = new UserInf

STM32内部闪存FLASH(内部ROM)、IAP

1 FLASH简介  1 利用程序存储器的剩余空间来保存掉电不丢失的用户数据 2 通过在程序中编程(IAP)实现程序的自我更新 (OTA) 3在线编程(ICP把整个程序都更新掉) 1 系统的Bootloader写死了,只能用串口下载到指定的位置,启动方式也不方便需要配置BOOT引脚触发启动  4 IAP(自己写的Bootloader,实现程序升级) 1 比如蓝牙转串口,

FreeRTOS内部机制学习03(事件组内部机制)

文章目录 事件组使用的场景事件组的核心以及Set事件API做的事情事件组的特殊之处事件组为什么不关闭中断xEventGroupSetBitsFromISR内部是怎么做的? 事件组使用的场景 学校组织秋游,组长在等待: 张三:我到了 李四:我到了 王五:我到了 组长说:好,大家都到齐了,出发! 秋游回来第二天就要提交一篇心得报告,组长在焦急等待:张三、李四、王五谁先写好就交谁的

java线程深度解析(一)——java new 接口?匿名内部类给你答案

http://blog.csdn.net/daybreak1209/article/details/51305477 一、内部类 1、内部类初识 一般,一个类里主要包含类的方法和属性,但在Java中还提出在类中继续定义类(内部类)的概念。 内部类的定义:类的内部定义类 先来看一个实例 [html]  view plain copy pu

Verybot之OpenCV应用一:安装与图像采集测试

在Verybot上安装OpenCV是很简单的,只需要执行:         sudo apt-get update         sudo apt-get install libopencv-dev         sudo apt-get install python-opencv         下面就对安装好的OpenCV进行一下测试,编写一个通过USB摄像头采

argodb自定义函数读取hdfs文件的注意点,避免FileSystem已关闭异常

一、问题描述 一位同学反馈,他写的argo存过中调用了一个自定义函数,函数会加载hdfs上的一个文件,但有些节点会报FileSystem closed异常,同时有时任务会成功,有时会失败。 二、问题分析 argodb的计算引擎是基于spark的定制化引擎,对于自定义函数的调用跟hive on spark的是一致的。udf要通过反射生成实例,然后迭代调用evaluate。通过代码分析,udf在

SW - 引入第三方dwg图纸后,修改坐标原点

文章目录 SW - 引入第三方dwg图纸后,修改坐标原点概述笔记设置图纸新原点END SW - 引入第三方dwg图纸后,修改坐标原点 概述 在solidworks中引入第三方的dwg格式图纸后,坐标原点大概率都不合适。 全图自动缩放后,引入的图纸离默认的原点位置差很多。 需要自己重新设置原点位置,才能自动缩放后,在工作区中间显示引入的图纸。 笔记 将dwg图纸拖到SW中