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

时间:2010-11-24 18:16:43

标签: design-patterns ooad oop

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

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

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

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

提前致谢。

2 个答案:

答案 0 :(得分:1)

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

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

例如,

GIF文件以字母GIF开头,以及用于指示GIF规范版本87a或89a的代码。 PNG文件 - 正如Robert Harvey指出的那样 - 有一个特殊字符,后面跟着PNG作为文件的前四个字节。

主要图片格式的大多数维基百科条目都解释了标题,还有更多关于文件本身的内容 - 除了上面覆盖PNG和JPEG的链接外,GIF还有http://en.wikipedia.org/wiki/GIF#File_format。< / p>

答案 1 :(得分:0)

假设我有一个扩展名为.PNG的文件,我不确定它是否真的是PNG文件。我可以look at the header并验证它是PNG文件。

对于JPG,我可以查看文件的syntax and structure,看看它是否是我对JPG的期望。

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