Coder_delphi 2013-12-19 03:08 采纳率: 0%
浏览 1635

请问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;
        }
    }
}
  • 写回答

1条回答 默认 最新

  • ChatGPTᴼᴾᴱᴺᴬᴵ 2023-02-26 13:06
    关注

    该回答引用ChatGPT

    Strip块的大小应该根据图像的大小和存储要求来设置。您可以考虑以下几点:

    • 图像大小:Strip块的大小应该与图像的大小相匹配。通常,Strip块的大小应该大于一个像素,但不宜过大。
    • 存储需求:Strip块的大小也应该根据存储需求来设置。如果您的图像需要高质量的存储,那么您可以选择较小的Strip块大小。如果您的图像需要快速读取和处理,那么您可以选择较大的Strip块大小。
    • 原始文件:Strip块的大小也可能受原始文件的影响。您可以尝试在新文件中使用与原始文件相同的Strip块大小,以确保图像质量和兼容性。

    通常,一个好的起点是将Strip块大小设置为图像高度的整数倍,并确保Strip块大小不超过8 KB(这是TIFF文件格式的限制)。如果您需要进一步调整Strip块大小,请尝试使用不同的Strip块大小来重新生成图像,并观察生成的图像质量和兼容性。


    另外,您还需要确保每个Strip块的偏移量和大小都正确设置,以便正确地写入像素数据。如果您的偏移量和大小不正确,可能会导致图像显示不完全或部分数据丢失。

    评论

报告相同问题?

悬赏问题

  • ¥15 虚拟机打包apk出现错误
  • ¥30 最小化遗憾贪心算法上界
  • ¥15 用visual studi code完成html页面
  • ¥15 聚类分析或者python进行数据分析
  • ¥15 逻辑谓词和消解原理的运用
  • ¥15 三菱伺服电机按启动按钮有使能但不动作
  • ¥15 js,页面2返回页面1时定位进入的设备
  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝