System.Drawing.Image和System.Drawing.Bitmap有什么区别?

时间:2013-10-30 09:18:39

标签: c# winforms image bitmap drawing

我很困惑System.Drawing.ImageSystem.Drawing.Bitmap

之间的区别

有人可以解释这两种类型之间的主要区别吗?

为什么要使用System.Drawing.Bitmap而不是System.Drawing.Image?

4 个答案:

答案 0 :(得分:13)

Bitmap继承自Image

System.Drawing.Bitmap : System.Drawing.Image
{ }

Image是一个抽象类,这意味着:

  

abstract修饰符表示正在修改的内容具有缺失或不完整的实现。

Bitmap是一个密封的类,这意味着:

  

当应用于类时,sealed修饰符会阻止其他类继承它。

请参阅以下内容:

Bitmap bmp = new Bitmap(filename); // Works
Image img = new Image(); // The compiler says: "Cannot access internal constructer 'Image' here.

这是因为Image并不意味着以这种方式使用。 它只提供Bitmap类的功能。

因此在处理像素化图像时使用Bitmap,如jpeg,png,bmp等。

如果您希望方法中没有特定类型的图像,Image的方法就足够了,请使用更通用的Image作为参数类型。然后,此方法将接受继承自Image的其他类,例如Metafile

答案 1 :(得分:4)

我不确定你的意思是什么?

System.Drawing.ImageSystem.Drawing.Bitmap的基类。

System.Drawing.Image也是抽象类,因此您无法创建它的实例。您只需要创建System.Drawing.Bitmap的实例。

Image.FromFile,Image.BlahBlah ...仅返回Bitmap的实例。

答案 2 :(得分:2)

由于MSDN文档明确说明了System.Drawing.Image

  

一个抽象基类,为Bitmap和Metafile后续类提供功能。

所以你无法比较它们。 System.Drawing.Bitmap类是抽象System.Drawing.Image类的具体实现。

答案 3 :(得分:1)

Image是表示栅格图像的基本抽象类。 Bitmap是基于GDI +的这个抽象类的一个实现。