What is the difference between System.Drawing.Image and System.Drawing.Bitmap?
bitmap, c#, drawing, image, winforms
Solution
`Bitmap` inherits from `Image`:
System.Drawing.Bitmap : System.Drawing.Image
{ }
`Image` is an abstract class, this means:
The abstract modifier indicates that the thing being modified has a missing or incomplete implementation.
`Bitmap` is a sealed class, this means:
When applied to a class, the sealed modifier prevents other classes from inheriting from it.
See the following:
Bitmap bmp = new Bitmap(filename); // Works
Image img = new Image(); // The compiler says: "Cannot access internal constructer 'Image' here.
This is because `Image` is not meant to be used this way. It just provides functionality for the `Bitmap` class.
Thus use `Bitmap` when dealing with pixelated images, like jpeg, png, bmp, etc.
If you expect no specific type of image in your method and the methods of `Image` are sufficient, use the more general `Image` as parameter type. This method will then accept other classes inheriting from `Image` as well, for example `Metafile`.
Problem
I am confused what's the different between `System.Drawing.Image` and `System.Drawing.Bitmap` Can someone explain the major difference between those two types ? And Why to use System.Drawing.Bitmap instead of System.Drawing.Image ?