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可以是任何图像对象-位图、图元文件或从图像继承的任何其他对象 我想你指的是抽象图像类的一个实现。路人:有一个更好的答案是正确的,可能是重复的