私の C# アプリケーションは TWSX_FILE モードで KOFAX VRS TWAIN ドライバーから画像ファイルを受け取りますが、独自の .NET ベースのアプリケーションも Windows のデフォルトの画像ビューアーもこれらのファイルを開くことができません。ただし、Adobe Photoshop では問題なく開くことができます。FreeImage ライブラリを試してみましたが、寸法は正しく検出されますが、黒い画像がレンダリングされます。KOFAX には、ヘッダーが通常の bmp ファイルとは異なる独自のビットマップ形式があるようです: http://www.fileformat.info/mirror/egff/ch03_03.htm これらのファイルの 1 つをここにアップロードしました: http: //www.box.net/shared/aby42aagz4 アプリケーションでこれらの画像を開く方法を知りたいのですが、この画像形式をサポートする軽量のオープン ソース/フリー ライブラリまたは C++/C# コード スニペットを知っている人はいますか?
1 に答える
あなたは基本的にあなた自身の質問に答えました: ファイルは Windows ビットマップ ファイルでも、文書化された Kofax ラスター形式でもありません。
ご指摘のとおり、最初の 2 バイトは「BM」です。これは、ファイルが Windows ビットマップであると主張していることを示します。ただし、その場合は、次の 4 バイトにファイル サイズが含まれます。サンプル ファイルでは、次の 4 バイトに実際のファイル サイズよりもはるかに大きな値が含まれているため、Windows ビットマップ ファイルとして正しく解釈できません。
リンク先の fileformat.info サイトに記載されているように、ファイルが本当に Kofax Raster Format である場合、バイト '68464B2Eh' で始まります。したがって、ファイルは Kofax ラスター形式でもありません。実際、Kofax の VCDemo ソフトウェアで開いてみたところ、「エラー 20204 - 内部無効状態」というエラーが表示されました。
したがって、Kofax 自身のソフトウェアは、ファイルが破損していると判断します。
Photoshop で開いて何かを表示できるからといって、それが有効な画像ファイル形式であるとは限りません。画像処理ソフトウェア パッケージは、多くの場合、ファイルの raw バイトの解釈を単純に推測しようとします。幸運に恵まれることもあれば、そうでないこともあります。
ファイルを読み取ることができるものを見つけようとすると、ファイルが標準形式であると想定されますが、そうではありません。したがって、ファイルを読み取れるものを検索するのではなく、使用している VRS/TWAIN 構成が非標準フォーマットを生成する理由を検索します。