本程序下载地址:  

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

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

  

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

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

  tiff拆分过程:

  

 /**************************************************************************
/* 函数名: DoSplitTiff
/*
/* 功能:
/* 执行OCR识别功能
/*
/* 参数:
/* strImagePath tiff图片绝对路径
/* strSavePath tiff图片拆分后保存的绝对路径
/*
/* 返回值:
/* 无
***************************************************************************/
void CTiffDlg::DoSplitTiff(CString & strImagePath, CString & strSavePath)
{
CxImage image;
int nFrameCnt = ; //加载图片,给image结构赋值
image.Load(strImagePath, CXIMAGE_FORMAT_TIF); //计算一张tiff图片是由多少张图片合成的
nFrameCnt = image.GetNumFrames(); //每次循环都加载1张tiff图片,并保存到m_pImageData中
for(int nIndex = ; nIndex < nFrameCnt; nIndex++)
{
image.SetFrame(nIndex);
image.Load(strImagePath, CXIMAGE_FORMAT_TIF); m_pImageData->Copy(image); //每张图片保存的路径
if(strSavePath.Right()== "\\")
{
strSavePath.Format("%d%s", nIndex, ".tiff");
}
else
{
strSavePath.Format("\\%d%s", nIndex, ".tiff");
} //保存
m_pImageData->Save(strSavePath, CXIMAGE_FORMAT_TIF);
}
}

tiff图片拆分的更多相关文章

  1. 多页的TIFF图片在aspx页面分页显示

    一.逻辑实现:将数据库中的二进制TIFF图片读出并分页显示在页面上. 1.显示界面 public FrameDimension MyGuid; ; ; public static MemoryStre ...

  2. acrgis导出成tiff图片,全是黑色

    任务:将北京道路矢量数据转成栅格然后导出成tiff格式图片. 1. 北京道路有很多种,矢量合并---用到了merge工具 arcgis位置:data management----general---- ...

  3. Java处理.tif或.tiff图片

    前言 Java将图片读取到内存用的是ImageIO,默认可以处理的图片格式如下: ImageIO.getWriterFileSuffixes() //此方法返回可以处理的图片格式数组 jpg bmp ...

  4. TIFF图片简介

    每个TIFF文件都是从指示字节顺序的两个字节开始的.“II”表示小字节在先.“MM”表示大字节在先字节顺序.后面的两个字节表示数字42.数字42是“为了其深刻的哲学意义"而选择的. 42的读 ...

  5. 关于Tiff图片的编解码

    TiffBitmapEncoder 类 (System.Windows.Media.Imaging)https://msdn.microsoft.com/zh-cn/library/ms635161( ...

  6. JPG、PNG和GIF图片的基本原理及优化方法

    一提到图片,我们就不得不从位图开始说起,位图图像(bitmap),也称为点阵图像或绘制图像,是由称作像素(图片元素)的单个点组成的.这些点可以进行不同的排列和染色以构成一副图片.当放大位图时,可以看见 ...

  7. JPG、PNG和GIF图片的基本原理及优…

    JPG.PNG和GIF图片的基本原理及优化方法 一提到图片,我们就不得不从位图开始说起,位图图像(bitmap),也称为点阵图像或绘制图像,是由称作像素(图片元素)的单个点组成的.这些点可以进行不同的 ...

  8. 简单爬虫 -- 以爬取NASA AOD数据(TIFF文件)为例

    目录: 网站分析 爬取下载链接 爬取TIFF图片 1.网站分析 主页面:https://neo.sci.gsfc.nasa.gov/view.php?datasetId=MYDAL2_M_AER_OD ...

  9. 文件上传,服务端压缩文件方法,重点是png与gif图片的压缩,保证了透明度与动画

    /// <summary> /// 上传文件帮助类 /// </summary> public class ImageUploadHelper { #region SaveVi ...

随机推荐

  1. 磊哥测评之数据库SaaS篇:腾讯云控制台、DMC和小程序

    本文由云+社区发表 作者:腾讯云数据库 随着云计算和数据库技术的发展,数据库正在变得越来越强大.数据库的性能如处理速度.对高并发的支持在节节攀升,同时分布式.实时的数据分析.兼容主流数据库等强大的性能 ...

  2. springboot情操陶冶-jmx解析

    承接前文springboot情操陶冶-@Configuration注解解析,近期笔者接触的项目中有使用到了jmx的协议框架,遂在前文的基础上讲解下springboot中是如何整合jmx的 知识储备 J ...

  3. Python3+Selenium2完整的自动化测试实现之旅(五):自动化测试框架、Python面向对象以及POM设计模型简介

    前言 之前的系列博客,陆续学习整理了自动化测试环境的搭建.IE和Chrome浏览器驱动的配置.selenium-webdriver模块封装的元素定位以及控制浏览器.处理警示框.鼠标键盘等方法的使用,这 ...

  4. C# Task 篇幅一

    在https://www.cnblogs.com/loverwangshan/p/10415937.html中我们有讲到委托的异步方法,Thread,ThreadPool,然后今天来讲一下Task, ...

  5. 使用Linq查找重复

    namespace RemoveTheSame { class Program { static void Main(string[] args) { List<User> list = ...

  6. redo/declare/typeset

    变量设置功能,都是由命令行直接设置的,那么,可不可以让使用者能够经由键盘输入? 什么意思呢?是否记得某些程序执行的过程当中,会等待使用者输入 "yes/no"之类的讯息啊? 在 b ...

  7. C# 添加、修改以及删除Excel迷你图表的方法

    Excel表格中的迷你图表能够直观地向我们展示出数据的变化趋势.本文将介绍C#如何实现为表格数据生成迷你图表,以及修改和删除迷你图表的方法.下面将详细讲述. 所用组件工具:Spire.XLS for ...

  8. Java开发笔记(十五)短路逻辑运算的优势

    前面提到逻辑运算只能操作布尔变量,这其实是不严谨的,因为经过Java编程实现,会发现“&”.“|”.“^”这几个逻辑符号竟然可以对数字进行运算.譬如下面的代码就直接对数字分别开展了“与”.“或 ...

  9. Apollo配置中心动态刷新日志级别

    Apollo配置中心动态刷新日志级别 添加次配置后,当在apollo上面调整日志级别不需要重启服务器,马上就能生效 /** * 结合apollo动态刷新日志级别 * @author: nj * @da ...

  10. sublime实现一键代码格式化

    效果预览 实现 首先下载插件SublimeAstyleFormatter 方法:ctrl + shift + P后输入install Package. 等待一段时间后输入SublimeAstyleFo ...