C# 图像与位图类

C# 图像与位图类,c#,.net,image,bitmap,C#,.net,Image,Bitmap,我很难理解图像类和位图类之间的区别。现在,我知道位图继承自图像,但据我所知,两者非常相似。有人能解释一下吗 位图类是Image类的一个实现。Image类是一个抽象类 Bitmap类包含12个构造函数,它们从不同的参数构造位图对象。它可以从另一个位图和图像的字符串地址构造位图 请参阅更多。图像提供了对任意图像的抽象访问,它定义了一组方法,可以逻辑地应用于图像的任何实现。它不受任何特定图像格式或实现的限制。位图是封装windows GDI位图对象的图像抽象类的特定实现。位图只是图像抽象类的一个具体实

我很难理解
图像
类和
位图
类之间的区别。现在,我知道
位图
继承自
图像
,但据我所知,两者非常相似。有人能解释一下吗

位图类是Image类的一个实现。Image类是一个抽象类

Bitmap类包含12个构造函数,它们从不同的参数构造位图对象。它可以从另一个位图和图像的字符串地址构造位图


请参阅更多。

图像提供了对任意图像的抽象访问,它定义了一组方法,可以逻辑地应用于图像的任何实现。它不受任何特定图像格式或实现的限制。位图是封装windows GDI位图对象的图像抽象类的特定实现。位图只是图像抽象类的一个具体实现,该类依赖于GDI位图对象

例如,您可以通过从Image类继承并实现抽象方法,为Image抽象创建自己的实现


无论如何,这只是OOP的一个简单的基本用法,应该不难理解。

这是一个澄清,因为我看到在代码中做的事情确实令人困惑-我认为下面的示例可能会帮助其他人

正如其他人之前所说-位图继承自抽象的图像类

抽象实际上意味着您不能创建它的新()实例

    Image imgBad1 = new Image();        // Bad - won't compile
    Image imgBad2 = new Image(200,200); // Bad - won't compile
但是您可以执行以下操作:

    Image imgGood;  // Not instantiated object!
    // Now you can do this
    imgGood = new Bitmap(200, 200);
    Bitmap bmpGood = new Bitmap(200,200);
您现在可以使用imgGood,就像您在执行以下操作时使用相同的位图对象一样:

    Image imgGood;  // Not instantiated object!
    // Now you can do this
    imgGood = new Bitmap(200, 200);
    Bitmap bmpGood = new Bitmap(200,200);
这里的好处是,您可以使用图形对象绘制imgGood对象


这里的imgGood可以是任何图像对象-位图、图元文件或从图像继承的任何其他对象

我想你指的是抽象图像类的一个实现。路人:有一个更好的答案是正确的,可能是重复的