c++-请问tiff文件中Strip块的大小如何设置

问题描述

请问tiff文件中Strip块的大小如何设置

我从一个tiff文件中读取了像素块,想自己编写代码把像素块写入到一个新的tiff文件中,但是写入后图像显示不完全,有的地方被黑色覆盖。查找后发现每个Strip块的大小与原文件不同。请问Strip块的大小该如何设置。
这是我设置Strip块大小的代码

m_ScripRows = 8 * 1024;//RowsPerStrip
    if(m_PlanarConfig == 1)
    {
        m_ScriptCount = floor((double)(m_SizeDoc.cy + m_ScripRows - 1) / m_ScripRows);//stripCount
    }
    else
    {
        m_ScriptCount = floor((double)(m_SizeDoc.cy + m_ScripRows - 1) / m_ScripRows) * m_SamplesPerPixel;
    }
    int PerScripByte = m_PixSize / m_ScriptCount;
    int LastScripByte = 0;
    if(m_PixSize % m_ScriptCount == 0)//m_PixSize像素点总大小
    {
        LastScripByte = PerScripByte;
    }
    else
    {
        LastScripByte = PerScripByte + (m_PixSize % m_ScriptCount);
    }
    delete[] m_ScripArr;//存放Strip的OffSet
    delete[] m_ScripBytes;//存放Strip大小
    if(m_ScriptCount != 0)
    {
        m_ScripArr = new int[m_ScriptCount];
        m_ScripBytes = new int[m_ScriptCount];
        //m_ScripArr[0] = 0x0008;
        //int tmp[470];
        if(m_ScriptCount >= 1)
        {
            for(int i = 0; i < m_ScriptCount - 1; i++)
            {
                m_ScripBytes[i] = PerScripByte;
                m_ScripArr[i] = 0x0008 + i* PerScripByte;
            }
            m_ScripArr[m_ScriptCount - 1] = 8 + (m_ScriptCount - 1)* PerScripByte;
            m_ScripBytes[m_ScriptCount - 1] = LastScripByte;
        }
    }
}
时间: 2024-08-05 03:04:47

c++-请问tiff文件中Strip块的大小如何设置的相关文章

该如何能从TIFF文件中提取出worldfile呢?

问题描述 手头上的TIFF图像都是裸图,上网查了很久都说.tif和.tfw应该是成对出现,这样才能进行仿射变换.但是,但是给的图都只有.tif,没有.tfw的...这该如何是好? 问题补充:谢谢 我的这个论文只能是TIFF格式,先得整清楚这个格式!oushulian 写道 解决方案 建议用erdas软件将tiff格式转为img格式,然后再提取影像文件,具体的我也不太懂,可以看看http://zhidao.baidu.com/question/164083869.html和http://blog.

autocad-请问dxf文件中自定义图层的线宽如何实现

问题描述 请问dxf文件中自定义图层的线宽如何实现 按dxf组码规则可以自定义图层进去,但是想给具体的图层加线宽信息,370组码老是报错

【HEVC学习与研究】38、HEVC编码过程中的块分割结构

[本文主要分为前后两部分,前半部分基本是Vivienne Sze.Madhukar BudagaviGary和J. Sullivan所编著的<High Efficiency Video Coding (HEVC) --Algorithms and Architectures>的第三章前半部分的笔记,后半部分是在HM-10.0中对Intra预测时块分割相应的代码研究.] 0.摘要 在基于块结构的混合编码框架中,每一帧图像被分割成多个像素结构的像素块(block),而一帧图像中多个像素块聚合成为一

请问如何在混编oc文件中的c++函数内调用另一个oc函数?

问题描述 请问如何在混编oc文件中的c++函数内调用另一个oc函数? 代码文件主要以oc编写,其中有一个函数是以C++的方式编写的,因此不知应该如何在这个函数中调用类中定义的函数和变量了,求教. 头文件都正确导入了,应该没有问题的. @interface QuickConfigurationController () --@property (nonatomicstrong) NSString *nsip;@end @implementation QuickConfigurationContro

getegid函数-请问getegid这个函数在vc中的哪个头文件中

问题描述 请问getegid这个函数在vc中的哪个头文件中 请问vc中有这个函数吗,有的话是在哪个头文件中呢,没有的话是用什么代替呢?我在msdn上搜过,那上面显示头文件是,但是我试了一下显示没有这个头文件的错误信息. 解决方案 参考C语言getegid()函数:获得组识别码 是C语言,没有说是VC. 头文件: #include <unistd.h> #include <sys/types.h> 定义函数:gid_t getegid(void); 函数说明:getegid()用来取

请问如何让一个类使用jar文件中的类?感谢高手帮忙一下!

问题描述 请问如何让一个类使用jar文件中的类?感谢高手帮忙一下!(本人是初学者,最好说得详细点,谢谢!) 解决方案 解决方案二:import就可以了啊在编译的时候加上-cp<这个jar文件的路径>,选择编译器和JRE到哪去找这些类.javac-cp<这个jar文件的路径>Test.javajava-cp<这个jar文件的路径>Test解决方案三:如果用到好多个jar的话,在windows上需要使用半角分号一个一个地分隔开来,在Linux上使用半角冒号分隔.

db2导出.del数据文件,请问如何将数据文件中的回车换行处理掉,使每条数据只占一行。

问题描述 db2导出.del数据文件,请问如何将数据文件中的回车换行处理掉,使每条数据只占一行. db2导出.del数据文件,文件中正常行分隔符为n,由于数据中某些字段的数据中含有回车换行,导致导出的数据一条数据占了不止一行,请问如何将数据文件中的回车换行处理掉,使每条数据只占一行. 解决方案 http://blog.csdn.net/xhsophie/article/details/41822287

请帮忙:请问怎样取得网页文件中的某个数据,并存到一个excel文件中去?请用c#实现,谢谢!

问题描述 网页中的内容为:班级计算机0205姓名王三...我想取得班级的名称和学生的姓名到一个excel表中,请问该如何实现呢?请给出例子语句,谢谢!还有我想请问如何取得一个特定文件夹下的某个文件夹的名称?谢谢! 解决方案 解决方案二:取网页内容无非就是匹配查找,正则表达式等IO操作file或dir,通过遍历取得子文件或文件夹解决方案三:能否给出具体的代码来呢,及如何取得匹配数据,如何取得文件夹名称,如何写到文件中去,谢谢!关键是结构是这样的,文件夹1->文件夹2->网页文件我要导出的exce

请问:java中,运用属性文件的方法怎么把mysql加载到memcached中?谢谢!

问题描述 请问:java中,运用属性文件的方法怎么把mysql加载到memcached中?谢谢! 请问:运用属性文件的方法怎么把mysql加载到memcached中?谢谢! 解决方案 http://blog.csdn.net/jiedushi/article/details/6176940