• vc图像合成


    本程序下载地址:

      上一篇讲述了tiff格式图片拆分成多张图片, 这篇博客讲述如何把多张任意格式的图片合成为一张图片。

      图像合成仍然需要借助Cximage图像库,合成函数为Mixfrom, 函数原型为:

    void MixFrom(CxImage & imagesrc, long lXOffset, long lYOffset);

      其中imagesrc表示原图, lXOffset,lYOffset表示原图需要被合成到目标图像的哪个位置。

     例如:

        //合成图片
        ImageDes.MixFrom(ImageSrc1, 0, 0);
        ImageDes.MixFrom(ImageSrc2, nSrc1Width, 0);
    
        //保存合成图片
        ImageDes.Save("D:\Compoud.jpg", CXIMAGE_FORMAT_JPG);

    在这个例子中,把原图1合成到目标图片的左边,把原图2合成到目标图片的右边,合成后的图片保存到D盘,合成后的效果图如下:

    下面是这个程序的完整代码:
     1 //图像合成响应函数
     2 void CMyDlg::OnBtnMinfrom() 
     3 {
     4     // TODO: Add your control notification handler code here
     5     CxImage ImageDes;
     6     CxImage ImageSrc1;
     7     CxImage ImageSrc2;
     8     
     9     //原图1宽高
    10     int nSrc1Width = 0;
    11     int nSrc1High = 0;
    12 
    13     //原图2宽高
    14     int nSrc2Width = 0;
    15     int nSrc2High = 0;
    16 
    17     //合成后的图片宽高
    18     int nDesWidth = 0; 
    19     int nDesHigh = 0;
    20 
    21     //加载图片1图片2
    22     ImageSrc1.Load("D:\001.jpg");
    23     ImageSrc2.Load("D:\002.jpg");
    24 
    25     //图片1宽高
    26     nSrc1Width = ImageSrc1.GetWidth();
    27     nSrc1High = ImageSrc1.GetHeight();
    28     
    29     //图片2宽高
    30     nSrc2Width = ImageSrc2.GetWidth();
    31     nSrc2High = ImageSrc2.GetHeight();
    32 
    33     //合成后的图片宽
    34     nDesWidth = nSrc1Width + nSrc2Width;
    35 
    36     //合成后的图片高(水平合成,所以宽为图片1和图片2之和, 高为图1和图2的最大者)
    37     if(nSrc1High < nSrc2High)
    38     {
    39         nDesHigh = nSrc2High;
    40     }
    41     else
    42     {
    43         nDesHigh = nSrc1High;
    44     }
    45     
    46     //合成后图片的位数,通常为24位
    47     int nBppCnt = ImageSrc1.GetBpp();
    48 
    49     //创建一个合成图片后的大小
    50     ImageDes.Create(nDesWidth, nDesHigh, nBppCnt);
    51 
    52     //合成图片
    53     ImageDes.MixFrom(ImageSrc1, 0, 0);
    54     ImageDes.MixFrom(ImageSrc2, nSrc1Width, 0);
    55 
    56     //保存合成图片
    57     ImageDes.Save("D:\Compoud.jpg", CXIMAGE_FORMAT_JPG);
    58 
    59 }
  • 相关阅读:
    ubuntu studio
    BeanUtils包的学习
    java的GUI编程
    Mybatis之旅第三篇-SqlMapConfig.xml全局配置文件解析
    Mybatis之旅第二篇-Mapper动态代理方式
    Mybatis之旅第一篇-初识Mybatis
    Spring之旅第六篇-事务管理
    Spring之旅第五篇-AOP详解
    Spring之旅第三篇-Spring配置详解
    Spring之旅第二篇-Spring IOC概念及原理分析
  • 原文地址:https://www.cnblogs.com/xydblog/p/3644714.html
Copyright © 2020-2023  润新知