【问题标题】:How Image Processing Applications identify the file which user opened?图像处理应用程序如何识别用户打开的文件?
【发布时间】:2010-11-24 18:16:42
【问题描述】:

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

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

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

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

提前致谢。

哈沙

【问题讨论】:

    标签: design-patterns ooad oop


    【解决方案1】:

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

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

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

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 2019-11-25
        • 2012-10-17
        • 2021-10-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-07-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多