我如何才能将 Microsoft Paint 格式(.MSP)的(真正)旧文件转换为可用格式?

我如何才能将 Microsoft Paint 格式(.MSP)的(真正)旧文件转换为可用格式?

在从 3.5 英寸软盘上的一堆旧档案中重新获取数据时,我碰到了几张存储在可执行计划格式。我很确定这是来自 Microsoft Paint 的一个古老版本(大约 1988-1990 年)。我查看了二进制文件,希望找到有关格式的线索,但DanM不知何故它们都以 开头。

我搜索了兼容的应用程序,但至今未找到。我尝试了ImageMagick 的mogrify/convert应用程序,但没有成功。我还尝试了 XnConvert,但它无法识别可执行计划格式。

如何转换 MS Paint 的可执行计划文件格式改为现代格式,例如JPG?Ubuntu 支持的任何位图格式都可以...谢谢。

答案1

我能够转换可执行计划文件与recoilhttp://recoil.sourceforge.net/) 甚至无需离开 Ubuntu 即可完成此操作。感谢 Kurt Fitzner 激励我深入研究网络。

答案2

恭喜您找到了 Windows 1.0/2.0 时代的文件格式。.msp 文件格式仅支持每像素一位的单色。我从未真正看过这种格式,所以我无法确定它是否经过压缩,也找不到任何参考资料来确认。我确实知道最初的 Microsoft Paint 实际上是 ZSoft 的 PC Paintbrush(.pcx 格式)的精简版。这可能意味着数据上有运行长度编码,因为 .pcx 通常使用这种编码。

选项:

  1. 尝试让 Windows 用户使用类似软件视图转换文件。上述软件不是开源的,但对于非商业用途是免费的。我认为你不太可能找到任何现有的开源软件可以打开这种深奥的文件格式。当 Windows 3.0 出现并使其成为一个真正可行的平台时,.bmp 文件格式随之出现,并将 .msp 降为几乎粉红色独角兽的状态。
  2. 您可以尝试手动将图像转换为 Linux 软件可以使用的图像。如果图像是原始的(未压缩的),并且您可以识别图像数据在文件中的起始位置,则可以使用支持二进制的文本编辑器以及一些巧妙的搜索和替换将文件转换为 .PBM。如果您对编程感兴趣,编写程序来转换它应该不难。

答案3

我能够破解文件格式:
0x00:4 字节 ASCII 文件头(文件开头的“DanM”字符串,这与 Windows 2.0 不同)
0x04:宽度(16 位小端整数,在默认的 Windows 1.0 图像上为 592)
0x06:高度(16 位小端整数,在默认的 Windows 1.0 图像上为 768)
0x08 - 0x1F:我们并不真正关心的信息(主要是 0x00 空字符)
0x20+:原始 1 位单色像素数据(大端)

要查看这些图像rawpixels.net您需要这些设置:

  • 宽度:592 或 0x04
  • 高度:768 或 0x06
  • 偏移:32
  • 水平翻转:否
  • 垂直翻转:否
  • 反转:否
  • 像素格式:灰度
  • 忽略 Alpha:否
  • Alpha First:否
  • BPP1:1
  • BPP2: 0
  • BPP3:0
  • BPP4: 0
  • 像素平面:已打包
  • 对齐:1
  • 水平子采样:1
  • 垂直子采样:1

使用此信息,编写将文件转换为更现代格式(BMP、PNG、TIFF、JPG)的软件将变得更加容易。顺便说一句,我没有 Ubuntu,我有 Windows 10,所以我真的不应该加入这个社区,哈哈。

相关内容