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 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM