質問

いの高さ/幅の画像をディスクなし開放していくことが可能であれば(パフォーマンス上の理由).

Windowsの物件の区画のための画像情報のような幅、高さ、ビット深度等 つながる思いで保存メタデータファイルのどこかということです。したいのでアクセスす。

役に立ちましたか?

解決

あstackoverflowにどのようにEXIF情報から、どっしりとした: どのように、EXIFファイルからデータを使用C#

他のヒント

使用System.Drawing.Imageクラス。

        Image img = Image.FromFile(fileName);
        ImageFormat format = img.RawFormat;
        Console.WriteLine("Image Type : "+format.ToString());
        Console.WriteLine("Image width : "+img.Width);
        Console.WriteLine("Image height : "+img.Height);
        Console.WriteLine("Image resolution : "+(img.VerticalResolution*img.HorizontalResolution));

        Console.WriteLine("Image Pixel depth : "+Image.GetPixelFormatSize(img.PixelFormat));
        Console.WriteLine("Image Creation Date : "+creation.ToString("yyyy-MM-dd"));
        Console.WriteLine("Image Creation Time : "+creation.ToString("hh:mm:ss"));
        Console.WriteLine("Image Modification Date : "+modify.ToString("yyyy-MM-dd"));
        Console.WriteLine("Image Modification Time : "+modify.ToString("hh:mm:ss"));

これを実現する最も簡単な方法は、画像が正方形であると仮定すると、バイト単位のファイルサイズを取得し、平方根を取ることです。これは、あなたの幅と高さになります。

256 bytes = 16px x 16px

する :-)

それとも、あなたはこの CodePlexのライブラリ

(、あなたがそれを置くように、基本的にメタデータ)を、画像の幅と高さを取得するためには、の、ファイルを開いて、ヘッダ情報のいくつかの種類を解析し、何があなたを取得する必要がありますそのようにしたいです。

あなたはすべての色/ビットマップ情報、ヘッダのみを読み込む必要がないでしょう。

これは、Windowsが実際にそれらを実行せずにアプリケーションファイルからアイコンをロードすることができます同じ方法である。

Windowsエクスプローラで表示されるプロパティを読み取るには、のマイクロソフトシェルコントロールとオートメーションのコンポーネントを使用することができます。この方法の利点は、あなたが(COMオブジェクトがすでに存在している)、または画像ヘッダを解析するための追加のコード任意のサードパーティのライブラリを必要としないこと、それは様々なフォーマットで動作するということです。

サンプルコードは、関連する質問への答えで見つけることができます。

scroll top