投稿者 よねKEN  (社会人) 投稿日時 2009/7/14 02:18:41
System.Drawing.Imageは抽象クラスで、その派生クラスには、
・System.Drawing.Bitmap というビットマップ画像(≠拡張子がbmpの画像)を現すクラス、
・System.Drawing.Imaging.Metafile というベクター画像を現すクラスがあります。
Imageクラスが抽象クラスであるのに対して、BitmapやMetafileは具象クラスといいます。

ビットマップ画像は、ドットの集まりで表現する形式の画像で、
ベクター画像は、線の両端の座標、曲線の曲がり具合、太さ、色などの形状で表現する形式の画像です。

BitmapクラスやMetafileクラスは内部の表現形式を規定した具体的な画像を現しているのに対して、
Imageクラスはより抽象的な意味での画像を現すクラスになっています。
画像をどのように表現するのかをImageクラスは知りませんので、Imageクラスのインスタンスは生成できません。

なぜこのようになっているか?と聞かれれば、設計者がそのように設計したから、です。

ちなみに、Image.FromFileメソッドやImage.FromStreamメソッドは、
指定した画像によりBitmapクラスかMetafileクラスのインスタンスを生成して返します。