2010-11-24 3 views
0

イメージ処理アプリケーションは、ユーザーが開いたファイルをどのように識別しますか?イメージ処理アプリケーションは、ユーザーが開いたファイルをどのように識別しますか?

既に知られているように、画像処理アプリケーションは、既知のすべての形式の画像を開くことができます。私の質問は、画像処理アプリケーションがどのように知っているか、開いているファイルの種類です。それは、ファイル拡張子から知っているか、それはバイナリでファイルを開き、ファイルのヘッダーを読み取って、それから私はそのファイルタイプのオブジェクトを作成します。

または画像ファイル形式を見つける既知の方法。

上記の問題は、システムの設計方法です。あなたが使用するデザインパターンはどれですか?

ありがとうございます。

ハルシャ

答えて

0

のは、私は.PNG拡張子を持つファイルを持っている、と私はそれが本当にPNGファイルであることはよく分からないとしましょう。私はlook at the headerでき、それがPNGファイルであることを確認します。

JPGについては、ファイルのsyntax and structureを見て、それがJPGから期待しているものかどうかを確認できます。

一般的に言えば、アルゴリズムは次のとおりです。ファイルの内部構造が拡張子が間違っていることが判明するまで、画像ファイルがファイル拡張子が示す形式であると仮定します。

1

アプリケーション全体のデザインパターンはイメージフォーマット認識のプロセスとはまったく関係ないと言いました。

各画像ファイルフォーマットは、ファイルのタイプを示す非常に早いバイナリ情報を持っています。これはファイルの 'ヘッダ'です。

GIFファイルは、たとえば、GIFという文字で始まり、GIF仕様のどのバージョン(87aまたは89a)を示すかを示すコードです。 Robert Harveyが指摘しているように、PNGファイルには特殊文字があり、その後にファイルの最初の4バイトとしてPNGが続きます。

主要な画像フォーマットのほとんどは、ヘッダーについて説明しています。ファイル自体についてもう少し詳しく説明します.PNGとJPEGをカバーする上記のリンクに加えて、GIFの場合はhttp://en.wikipedia.org/wiki/GIF#File_formatもあります。

関連する問題