0

图像处理应用程序如何识别用户打开的文件?

众所周知,图像处理应用程序可以打开所有已知格式的图像。我的问题是,图像处理应用程序如何知道它正在打开什么样的文件。它会从文件扩展名中知道,或者它将以二进制文件打开文件并读取文件的标题,然后我将创建该文件类型的对象。

或任何已知的找出图像文件格式的方法。

对于上述问题,您如何设计系统。您将使用哪些设计模式。

提前致谢。

哈沙

4

2 回答 2

1

我会说整个应用程序的设计模式与图像格式识别的过程完全无关。

每种图像文件格式都有很早的二进制信息,表明它是文件的类型,即文件的“标题”。

例如,GIF 文件以字母 GIF 开头,并带有一个代码来指示 GIF 规范的哪个版本,87a 或 89a。PNG 文件 - 正如 Robert Harvey 所指出的 - 有一个特殊字符,后跟 PNG 作为文件的前四个字节。

大多数主要图像格式的维基百科条目都解释了标题,以及更多关于文件本身的信息 - 除了上面涵盖 PNG 和 JPEG 的链接之外,还有http://en.wikipedia.org/wiki/ GIF#File_format用于 GIF。

于 2010-11-24T18:24:26.457 回答
0

假设我有一个扩展名为 .PNG 的文件,但我不确定它是否真的是 PNG 文件。我可以查看标题并确认它是 PNG 文件。

对于 JPG,我可以查看文件的语法和结构,看看它是否符合我对 JPG 的期望。

一般来说,算法是:假设图像文件是文件扩展名所说的格式,直到文件的内部结构证明扩展名是错误的。

于 2010-11-24T18:19:44.673 回答