|
.NET TIPS 画像ファイルのフォーマットを知るには?デジタルアドバンテージ2003/05/02 |
![]() |
|
|
|
Windowsにおけるファイルの拡張子は、ファイルの種類を分類し、アプリケーションとの関連付けを行うためのものだ。ファイル名はユーザーが自由に変更できるため、正しい拡張子は、ファイル内のヘッダ部分などから判断するしかない。画像ファイルに関しては、WindowsのGDI+に組み込まれているデコーダを利用して、画像フォーマット(ファイル形式)をファイルの内容から判別することができる。
TIPS:画像を読み込むには? では、ImageCodecInfoクラス(System.Drawing.Imaging名前空間)のGetImageDecodersメソッドを使用し、次のようにしてWindowsのGDI+に組み込まれているデコーダを列挙した。
ImageCodecInfo[] decoders = ImageCodecInfo.GetImageDecoders();
ImageCodecInfoクラスのFormatIDプロパティからは、コーデックのファイル形式を識別するためのGUIDを取得することができる。このGUIDは、画像フォーマットごとに割り振られたユニークなIDである(つまり、GUIDから画像フォーマットを特定することができる)。
一方、画像の読み込み時に作成するBitmapオブジェクトのRawFormatプロパティからは、ロードされた画像のフォーマットをImageFormatクラス(System.Drawing.Imaging名前空間)のオブジェクトとして取得することができる。ImageFormatオブジェクトは、画像フォーマットを示すためのオブジェクトで、TIPS:画像をファイルに保存するには? では、画像ファイルの保存時にパラメータとしてこれを使用している。このImageFormatオブジェクトは、その画像フォーマットを識別するGuidプロパティを持っている。よって、このGuidプロパティと、上述したデコーダのGUIDであるFormatIDプロパティを比較することにより、画像ファイルに対応するデコーダを判別でき、画像データのファイル形式を知ることが可能になる。
次のサンプル・プログラムでは、コマンドラインのパラメータで指定された画像ファイルを読み込み、その画像フォーマットのGUIDをすべてのデコーダのGUIDと順に比較して、一致するものがあればデコーダの説明とその拡張子を表示する。
|
|
| 画像ファイルのファイル形式を表示するC#のサンプル・プログラム(getformat.cs) | |
カレント・ディレクトリにJPEGファイル「mypicture.gif」があるとすると、このサンプル・プログラムは次のようにして実行する。
|
|
| サンプル・プログラムの実行結果例 |
GDI+のデコーダは、ファイル内容から画像フォーマットを判別するので、正しい拡張子を知ることができる。![]()
| カテゴリ:クラス・ライブラリ 処理対象:ビットマップ 使用ライブラリ:ImageCodecInfoクラス(System.Drawing.Imaging名前空間) 使用ライブラリ:ImageFormatクラス(System.Drawing.Imaging名前空間) 関連TIPS:画像を読み込むには? 関連TIPS:画像をファイルに保存するには? |
|
||||||||||||||||||||||||||||
| 「.NET TIPS」 |
TechTargetジャパン
- 新人プログラマーのためのInsider.NETの歩き方 2012 (2012/5/22)
晴れて.NETプログラマーとなる新人が効率的に開発技術を習得するには? 大量にある記事群の中から新人が読むべきお勧めを厳選して紹介 - jQuery MobileでJavaScriptプログラミング (2012/5/17)
jQuery Mobileは手軽なだけでなく、JavaScriptのAPIも充実しており、独自機能の実装もできる。今回は「グローバル設定」と「イベント」を解説 - Windows上で開発するための開発環境構築入門 (2012/5/16)
Windowsを使ってチームで開発している? なのにサーバOSを設定・運用した経験がない? そうなら、今すぐ学ぼう - 「コントラクト」でアプリのサンドボックスを乗り越える! (2012/5/11)
Metroスタイル・アプリはサンドボックスの中で動作する。それを乗り越えてほかのアプリと連携する仕組み「コントラクト」を解説
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -


