1. ホーム
  2. c#

[解決済み] ストリームから取得した画像の形式を知るには?

2023-06-16 20:08:12

質問

あるWebサービスからバイトストリームを取得します。このバイトストリームは画像のバイナリデータを含んでおり、私は以下のC#のメソッドを使用して、それをImageインスタンスに変換しています。

どのような種類の画像なのか知る必要があります。単純なビットマップなのか ( *.bmp ) なのか、それとも JPEG 画像 ( *.jpg )またはpng画像ですか?

どのように調べればいいのでしょうか?

    public static Image byteArrayToImage( byte[] bmpBytes )
    {
        Image image = null;
        using( MemoryStream stream = new MemoryStream( bmpBytes ) )
        {
            image = Image.FromStream( stream );
        }

        return image;
    }

どのように解決するのですか?

以下のサイトを参照してください。 Image.RawFormat プロパティをチェックアウトすることができます。ですから、一度ストリームから画像を読み込めば、テストすることができます。

if (ImageFormat.Jpeg.Equals(image.RawFormat))
{
    // JPEG
}
else if (ImageFormat.Png.Equals(image.RawFormat))
{
    // PNG
}
else if (ImageFormat.Gif.Equals(image.RawFormat))
{
    // GIF
}
... etc