• tiff图片拆分


    本程序下载地址:  

      tiff格式的图片可以由多张图片合成, 也可以拆分为多张图片。不管是合成或者拆分,都借助了第三方开源库Cximage,对于这个图像库的使用,我们没有必要去一行一行的去看它的代码实现,我们只需要使用它提供出来的接口就可以了。下面先展示tiff图片的拆分,之后的博客再展示tiff格式图片的合成。

      程序运行结果,点击Tiff分割按钮,将“D:\src.tiff” 图片拆分为0.tiff, 1.tiff, 2.tiff三张图片。

      

      图像拆分主要使用到Cximage类中的GetNumFrames,SetFrame成员函数,分别用来获取图像帧的个数,设置一帧。

    long GetNumFrames();  //返回一张图片共有多少帧
    void SetFrame(long nFrame);  //设置一张图片的当前帧
     1 //tiff图片拆分响应函数
     2 void CTiffDlg::OnBtnTiffSplit() 
     3 {
     4     // TODO: Add your control notification handler code here
     5 
     6     //tiff图片路径
     7     CString strImagePath = "D:\src.tiff";        
     8 
     9     //保存的路径
    10     CString strSavePath = "D:";                                                
    11 
    12     //执行tiff拆分功能
    13     DoSplitTiff(strImagePath, strSavePath);
    14 }

      tiff拆分过程:

      

     1 /**************************************************************************
     2 /*    函数名:    DoSplitTiff
     3 /*
     4 /*    功能:
     5 /*                执行OCR识别功能
     6 /*                
     7 /*    参数:
     8 /*                strImagePath            tiff图片绝对路径
     9 /*                strSavePath                tiff图片拆分后保存的绝对路径
    10 /*
    11 /*    返回值:
    12 /*                无
    13 ***************************************************************************/
    14 void CTiffDlg::DoSplitTiff(CString & strImagePath, CString & strSavePath)
    15 {
    16     CxImage image;
    17     int nFrameCnt = 0;
    18 
    19     //加载图片,给image结构赋值
    20     image.Load(strImagePath, CXIMAGE_FORMAT_TIF);
    21 
    22     //计算一张tiff图片是由多少张图片合成的
    23     nFrameCnt = image.GetNumFrames();
    24 
    25     //每次循环都加载1张tiff图片,并保存到m_pImageData中
    26     for(int nIndex = 0; nIndex < nFrameCnt; nIndex++)
    27     {
    28         image.SetFrame(nIndex);
    29         image.Load(strImagePath, CXIMAGE_FORMAT_TIF);
    30 
    31         m_pImageData->Copy(image);
    32 
    33         //每张图片保存的路径
    34         if(strSavePath.Right(1)== "\")
    35         {
    36             strSavePath.Format("%d%s", nIndex, ".tiff");
    37         }
    38         else
    39         {
    40             strSavePath.Format("\%d%s", nIndex, ".tiff");
    41         }
    42 
    43         //保存
    44         m_pImageData->Save(strSavePath, CXIMAGE_FORMAT_TIF);
    45     }
    46 }
  • 相关阅读:
    Codeforces.468C.Hack it!(构造)
    BZOJ.3227.[SDOI2008]红黑树tree(树形DP 思路)
    146
    145
    144
    143
    142
    141
    140
    139
  • 原文地址:https://www.cnblogs.com/xydblog/p/3644654.html
Copyright © 2020-2023  润新知