tiff图片拆分
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图片拆分的更多相关文章
- 多页的TIFF图片在aspx页面分页显示
一.逻辑实现:将数据库中的二进制TIFF图片读出并分页显示在页面上. 1.显示界面 public FrameDimension MyGuid; ; ; public static MemoryStre ...
- acrgis导出成tiff图片,全是黑色
任务:将北京道路矢量数据转成栅格然后导出成tiff格式图片. 1. 北京道路有很多种,矢量合并---用到了merge工具 arcgis位置:data management----general---- ...
- Java处理.tif或.tiff图片
前言 Java将图片读取到内存用的是ImageIO,默认可以处理的图片格式如下: ImageIO.getWriterFileSuffixes() //此方法返回可以处理的图片格式数组 jpg bmp ...
- TIFF图片简介
每个TIFF文件都是从指示字节顺序的两个字节开始的.“II”表示小字节在先.“MM”表示大字节在先字节顺序.后面的两个字节表示数字42.数字42是“为了其深刻的哲学意义"而选择的. 42的读 ...
- 关于Tiff图片的编解码
TiffBitmapEncoder 类 (System.Windows.Media.Imaging)https://msdn.microsoft.com/zh-cn/library/ms635161( ...
- JPG、PNG和GIF图片的基本原理及优化方法
一提到图片,我们就不得不从位图开始说起,位图图像(bitmap),也称为点阵图像或绘制图像,是由称作像素(图片元素)的单个点组成的.这些点可以进行不同的排列和染色以构成一副图片.当放大位图时,可以看见 ...
- JPG、PNG和GIF图片的基本原理及优…
JPG.PNG和GIF图片的基本原理及优化方法 一提到图片,我们就不得不从位图开始说起,位图图像(bitmap),也称为点阵图像或绘制图像,是由称作像素(图片元素)的单个点组成的.这些点可以进行不同的 ...
- 简单爬虫 -- 以爬取NASA AOD数据(TIFF文件)为例
目录: 网站分析 爬取下载链接 爬取TIFF图片 1.网站分析 主页面:https://neo.sci.gsfc.nasa.gov/view.php?datasetId=MYDAL2_M_AER_OD ...
- 文件上传,服务端压缩文件方法,重点是png与gif图片的压缩,保证了透明度与动画
/// <summary> /// 上传文件帮助类 /// </summary> public class ImageUploadHelper { #region SaveVi ...
随机推荐
- Apache coredump 问题发现与解决记录
目录 Apache coredump 问题发现与解决记录 背景 发现问题 解决问题 方法 1 方法 2 总结 Linux 程序编译链接动态库版本问题 ldd 命令 动态库的编译和 soname 线上 ...
- Linux常用监控命令简介 – vmstat,ps,free,uptime 等
vmstat [-a] [-n] [delay [ count]]vmstat [-f] [-s] [-m]vmstat [-S unit]vmstat [-d]vmstat [-p disk par ...
- 痞子衡嵌入式:飞思卡尔Kinetis系列MCU启动那些事(1)- KBOOT架构
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是飞思卡尔Kinetis系列MCU的KBOOT架构. Bootloader是嵌入式MCU开发里很常见的一种专用的应用程序,在一个没有Boo ...
- Centos7-yum部署配置LAMP-之LAMP及php-fpm实现反代动态资源
一.简介 LAMP:linux+apache+mysql(这里用mariadb)+php(perl,python) LAMMP:memcached缓存的 CGI:Common Gateway Inte ...
- webpack4.0各个击破(3)—— Assets篇
目录 一. Assets资源的基本处理需求 二. webpack处理引用资源 2.1 资源打标 2.2 引用优化 2.3 sprites雪碧图合成 2.4 图片压缩及其他 webpack作为前端最火的 ...
- 流程控制值while 循环
一.结束循环的两种方式 1. 修改条件tag=Truewhile tag: print(1) print(2) print(3) tag=False print(4) 2.while + break ...
- 前端加密传输 crypto-js AES 加密和解密
配置: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8 ...
- XSS Challenges
平台: http://www.zixem.altervista.org/XSS/ level1: Payload: http://www.zixem.altervista.org/XSS/1.php? ...
- 小记 xian80 坐标转换 wgs84
转坐标这个问题是个老生常谈的话题了. 昨天遇到同事求助将 xian80的平面坐标转换到2000下. 想了一下,因为暂时还没有现成的2000的dwg数据可用,只能暂时以wgs84的为准了,然而有个问题, ...
- zabbix3.4 端口和进程监控配置
虚拟机系统版本:centos7.5 zabbix server 版本:zabbix3.4 配置步骤:待定 近期即将更新!