问题描述
- 请问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