【问题标题】:Platform-dependent issue in run-length encoding of bmp files using C使用 C 对 bmp 文件进行运行长度编码中的平台相关问题
【发布时间】:2009-03-26 09:04:15
【问题描述】:

我编写了一个程序,它打开一个 bmp 文件并将其视为字符文件并对其执行运行长度编码。它会生成一个有效的压缩编码文件,我会再次读取该文件以执行解码。

当我创建应用程序时,我使用的是 Fedora,它运行得非常好。现在我在 ubuntu 上运行它,它拒绝工作。

知道有什么问题吗?我担心它与编码有关。

【问题讨论】:

  • 您是否尝试在 Ubuntu 上重新编译它,或者您只是将二进制文件复制过来?
  • 我尝试了两种方法都没有奏效..
  • 这应该是微不足道的。默认情况下,就像有符号/无符号字符一样。为什么首先将二进制文件视为字符文件?
  • 如果不是char,我还能如何处理数据?我需要找到一个字符的连续出现。如果我以二进制模式读取,我可以比较什么数据类型?
  • 这不是数据类型的问题,而是你如何使用它的问题。一些代码 sn-ps 会有所帮助。

标签: c encoding ubuntu fedora run-length-encoding


【解决方案1】:

我首先建议使用源代码调试器来查找问题。

可能的原因包括在不同的系统上使用不同的编译器,这可能会做不同的事情,例如打包结构(例如,BITMAPFILEHEADER)。您还可能在两个系统上使用不同的 CPU 架构(64 位与 32 位)。

您还可以使用十六进制编辑器(例如 XVI32)来检查由您的程序的两个版本生成的 BMP 文件之间的差异。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-17
    • 2013-09-27
    • 1970-01-01
    相关资源
    最近更新 更多