2

给定一个未知规格的复杂文件,其中包含未压缩的位图文件 (.BMP),您将如何在 Python 中提取它?
扫描“BM”标签并查看以下字节是否“类似”BMP 标头?

4

2 回答 2

4

我会使用Python Imaging Library PIL 并尝试处理数据。如果它可以解析它,那么它就是一个有效的图像。当它抛出异常时,它不是。

您需要搜索图像的开头;如果幸运的话,图像阅读器将忽略图像数据后的垃圾。如果没有,请使用二进制搜索来定位图像的末尾。

于 2009-05-14T09:53:26.850 回答
4

是的,您唯一能做的就是在文件中搜索“BM”标记,将以下数据提取到BITMAPFILEHEADER和相应的 BITMAPINFO 中,并查看其中的值是否有效(即尺寸是否合理,颜色深度是否合理等)。

找到看起来合理的东西后,将数据提取出来并将其传递给另一个答案中提到的库。

于 2009-05-14T10:19:51.127 回答